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