CFB
Generated by scripts/gen-format-pages.py from docs/data/format-metadata/, FILE_FORMATS.csv and docs/formats-master.csv. Do not edit by hand: change the source, then run the script.
Cfb Preview.
At a glance
| Purpose | A Compound File Binary (OLE2) container under the .cfb extension: storages and streams in a FAT-like file system. |
| Extensions | .cfb |
| Poka parser | poka-cfb |
| Viewer | poka-table-viewer |
| Depth tier | Parser with a shared viewer (see Depth tiers) |
| Breadth tier | B4 Summary (see Breadth tiers) |
How much Poka reads
B4 Summary. The container and metadata are read and summarised (counts, properties, structure), but the main content is not rendered.
Confidence: medium (the reviewer read the code). Basis: Reviewed 2026-10-26: read parsers/poka-cfb/src/lib.rs, parsers/poka-cfb/src/main.rs, parsers/poka-cfb/src/salvage.rs (1031 lines) and plugin.json. Four unit tests and tests/samples.rs, which needs a samples directory of compound files; the corpus has no .cfb file under this extension. Covers .cfb. The table lists every stream with its path and size via the cfb crate, and a cut file is salvaged by reading the header, FAT, directory and chains directly with a TRUNCATED warning. The same module serves five alias routes (.max, .mpp, .mso, .shs, .sdv). Judgement: B4: the container is listed, but no stream is decoded.
What Poka does not read
- No stream content is decoded (documents, property sets, embedded objects)
- Storage timestamps and CLSIDs are not shown
- Only the first 200 streams are listed; files over 64 MiB are cut
Libraries
Libraries Poka uses or has assessed for this format, with the status, licence and language the registry records.
- cfb (used; MIT; Rust)
- OpenMcdf (candidate; MPL-2.0; C#/.NET; https://github.com/ironfede/openmcdf) — Reads and writes compound files; OLE property support is a separate experimental package
- olefile (candidate; BSD-style (variant not confirmed); Python; https://github.com/decalage2/olefile) — Reads and writes OLE2 files; page shows a BSD-style licence by Philippe Lagadec but the variant was not named
Sources
- parsers/poka-cfb/src/lib.rs
- parsers/poka-cfb/src/main.rs
- parsers/poka-cfb/src/salvage.rs
- parsers/poka-cfb/plugin.json