poka.sh

Docs

MSI

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.

MSI Installer Preview.

At a glance

Purpose A Windows Installer database (.msi, or a merge module .msm): installer tables stored as streams in a compound file.
Extensions .msi
Poka parser poka-msi
Viewer poka-tree-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-msi/src/main.rs (1160 lines) and plugin.json. Five unit tests cover the compound-file walk and truncation; the corpus has no MSI. Covers .msi and .msm. The tree reads the compound file itself (DIFAT, FAT, mini stream, directory) and lists every storage and stream, with MSI's mangled stream names decoded and well-known tables named; from the Property table it shows ProductName, ProductVersion, Manufacturer and ProductCode. Judgement: B4: the database structure is listed and a few properties decoded, but the tables are not.

What Poka does not read

  • Table rows are not decoded except four Property values: no files, components, features, registry entries or custom actions
  • The summary information stream (title, author, platform, package code) is named but not decoded
  • Embedded cabinets and binaries are not opened
  • The digital signature is not read
  • 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.

Sources

  • parsers/poka-msi/src/main.rs
  • parsers/poka-msi/plugin.json