feat(rust): port FSE compression primitives
Move FSE normalization, count-header writing, compression-table construction, and stream encoding from C to Rust. The original C source remains as a header-only shim, preserving the public header configuration while native consumers receive the Rust archive exports. This completes both codec directions for FSE in the migration crate and lets the unchanged C compatibility tests exercise the Rust encoder implementation. Test Plan: - cargo clippy; cargo clippy --benches; cargo clippy --tests - cargo +nightly fmt, then repeat the Clippy checks - cargo test --all-targets - cargo build --release - Compile the C shim with strict warnings enabled - 1,000-case pristine-C differential for tables, headers, and payloads - ./tests/fuzzer -v -T10s - ./tests/decodecorpus -t -T5 Refs: rust/README.md
This commit is contained in:
@@ -20,6 +20,8 @@ zstd ABI:
|
||||
- Entropy coding
|
||||
- `entropy_common` reads FSE normalized counts and Huffman statistics.
|
||||
- `fse_decompress` builds FSE decoding tables and decodes FSE streams.
|
||||
- `fse_compress` normalizes counts, writes FSE headers, builds compression
|
||||
tables, and encodes FSE streams.
|
||||
- Compression primitives
|
||||
- `hist` counts byte frequencies for FSE and Huffman compression.
|
||||
- Runtime support
|
||||
|
||||
Reference in New Issue
Block a user