poka.sh

Docs

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