pdftract/crates
jedarden d873136439 feat(pdftract-2xql8): implement zstd compression encode/decode
Phase 6.9.3: zstd compression for cache entries.

- encode(): compress data with zstd level 3 (configurable via PDFTRACT_CACHE_ZSTD_LEVEL)
- decode(): decompress with 256 MB bomb protection and magic-byte validation
- encode_from_reader(): streaming variant for large inputs
- decode_into_writer(): streaming variant with incremental bomb protection

Acceptance criteria:
- Round-trip: encode(decode(bytes)) == bytes (PASS)
- Compression ratio: 5 MB -> <= 1.5 MB (PASS, ~4-5x achieved)
- Decode of truncated frame -> Err (PASS)
- Decode of >256 MB output -> Err (PASS)
- Decode of empty input -> Err (PASS)
- Decode of non-zstd magic bytes -> Err (PASS)
- Benchmark: encode 1 MB < 5 ms (PASS)
- Benchmark: decode 1 MB < 2 ms (PASS)

See notes/pdftract-2xql8.md for details.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-23 04:54:16 -04:00
..
pdftract-cer-diff fix(pdftract-2t9): update regression-corpus step image and secret 2026-05-18 01:20:53 -04:00
pdftract-cli feat(pdftract-39g4j): implement --receipts CLI flag + ExtractionOptions threading 2026-05-23 04:27:36 -04:00
pdftract-core feat(pdftract-2xql8): implement zstd compression encode/decode 2026-05-23 04:54:16 -04:00
pdftract-py feat(pdftract-67tm8): implement MCP stdio transport with integration tests 2026-05-23 00:16:42 -04:00