feat(rust): port compression literal blocks
Move raw, RLE, and Huffman literal-section encoding into the Rust compatibility archive. The surrounding C block compressor continues to pass its existing entropy workspace and Huffman-table state through the unchanged internal ABI. The port preserves literal header choices, compression-gain decisions, repeat-table transitions, and 1X/4X encoder selection. It lets ordinary C compression paths exercise Rust code without widening this commit into the remaining frame compressor. Test Plan: - cargo clippy, cargo clippy --benches, cargo clippy --tests, and nightly fmt - cargo test --all-targets (94 passed) and feature-only cargo checks - native fuzzer, zstreamtest, invalidDictionaries, and CLI round trip - compare literals and next-table bytes with pristine C on x86_64 and i686 Refs: rust/README.md compression-primitives map
This commit is contained in:
@@ -29,6 +29,8 @@ zstd ABI:
|
||||
- Compression primitives
|
||||
- `hist` counts byte frequencies for FSE and Huffman compression.
|
||||
- `zstd_presplit` chooses split points for full compression blocks.
|
||||
- `zstd_compress_literals` emits raw, RLE, and Huffman literal sections
|
||||
while preserving the compressor's Huffman-table repeat state.
|
||||
- Runtime support
|
||||
- `threading` provides platform pthread wrappers required by zstd headers.
|
||||
- `pool` implements the bounded worker pool used by multithreaded compression.
|
||||
|
||||
Reference in New Issue
Block a user