Skip to main content

Module chunk

Module chunk 

Source
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§

ChunkSplit
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.