poka.sh

Docs

BSDIFF

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.

BSDiff Patch Preview.

At a glance

Purpose A bsdiff binary patch: control, diff and extra blocks that turn an old file into a new one.
Extensions .bsdiff
Poka parser poka-bsdiff
Viewer poka-metadata-card-viewer
Depth tier Metadata card (see Depth tiers)
Breadth tier B5 Identification (see Breadth tiers)

How much Poka reads

B5 Identification. The format is recognised and a few properties are shown (name, size, version string). Nothing of the content is decoded.

Confidence: medium (the reviewer read the code). Basis: Reviewed 2026-10-26: read parsers/poka-bsdiff/src/main.rs (156 lines) and plugin.json. No unit tests or tests/samples.rs; the corpus has no .bsdiff and .bspatch sample. Covers .bsdiff and .bspatch. The card reads the magic (BSDIFF40 or the ENDSLEY/BSDIFF43 variant), the compressor it implies, the three block lengths and the new file's size. Judgement: B5: only the header is decoded; the patch blocks is not walked or decoded.

What Poka does not read

  • The control, diff and extra blocks are not decompressed or decoded, so the patch's operations are not shown
  • The old file the patch applies to is not identified (the format does not name it)

Libraries

Libraries Poka uses or has assessed for this format, with the status, licence and language the registry records.

  • qbsdiff (candidate; MIT; Rust; https://github.com/hucsmn/qbsdiff) — bsdiff 4.x compatible patcher (Bspatch); BSDIFF40 compatibility is claimed by the README but was not verified

Sources

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