Expand description
Chunk-level parallel DEFLATE decoder.
Mirrors lbzip2-rs chunk.rs: the caller reads up to 200 MB of compressed data
into a ring-buffer slot, prepends any carry from the previous slot, then calls
split_chunk to find flush boundaries and decode_chunk to decode all segments
in parallel.
Full-flush boundaries (00 00 FF FF) guarantee no LZ77 back-reference crosses
a segment boundary, so each segment is independently decompressible.
Segments are decompressed using our custom DEFLATE decoder (inflate_segment)
which handles non-final segments (no BFINAL=1 requirement). Falls back to
miniz_oxide for robustness.
Structs§
- Chunk
Split - Result of splitting a chunk into independently-decompressible segments.
Functions§
- decode_
chunk - Decode a full chunk in parallel.
- decode_
segment - Decompress one segment and return the output as an owned
Vec<u8>. - decode_
segment_ into - Decompress one segment of DEFLATE data that may NOT end on BFINAL=1.
- split_
chunk - Split a chunk of compressed DEFLATE data into segment boundaries.