feat(rust): port compression block pre-splitting
Move ZSTD_splitBlock into Rust while retaining its caller-owned workspace contract. The implementation preserves the C fingerprint sampling heuristic and calls the migrated histogram primitive without adding a hot-path allocation. Reference-vector and randomized differential tests compare every split level with the original C translation unit. The C source remains as a declaration shim so existing source lists resolve the Rust ABI during the migration. Test Plan: - cargo fmt, cargo clippy, cargo clippy --benches, cargo clippy --tests - cargo test --all-targets and cargo build --release - cargo test/build --target i686-unknown-linux-gnu - 264-case original-C/Rust differential harness - C fuzzer, zstreamtest, and fuzzer32 smoke runs Refs: rust/README.md
This commit is contained in:
@@ -26,6 +26,7 @@ zstd ABI:
|
||||
Huffman streams.
|
||||
- Compression primitives
|
||||
- `hist` counts byte frequencies for FSE and Huffman compression.
|
||||
- `zstd_presplit` chooses split points for full compression blocks.
|
||||
- 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