feat(rust): port compressed block decoding
Move literal decoding, sequence-table construction, FSE sequence decoding, and sequence execution into Rust. The C shim retains ownership of the configured decoder context and passes only the leaf state needed by the block codec. Correct the two high offset-code bases while porting the tables. Their prior values made valid large-window streams decode as corrupted data; the new unit test fixes the exact values and a native zstream regression exercises them. High-level frame and streaming context control remains C for now. Test Plan: - cargo test --all-targets - cargo test --target i686-unknown-linux-gnu --all-targets - cargo clippy && cargo clippy --benches && cargo clippy --tests - cargo +nightly fmt - make -B -C tests -j2 fuzzer zstreamtest invalidDictionaries poolTests - ./tests/fuzzer -s5346 -i1 --no-big-tests - ./tests/zstreamtest -i3000 -s334462 - ./tests/invalidDictionaries - timeout 20s stdbuf -oL ./tests/poolTests Refs: rust/README.md
This commit is contained in:
+7
-4
@@ -40,11 +40,14 @@ zstd ABI:
|
||||
- `pool` implements the bounded worker pool used by multithreaded compression.
|
||||
- Dictionary support
|
||||
- `zstd_ddict` owns, loads, copies, and references decode dictionaries.
|
||||
- Block decompression
|
||||
- `zstd_decompress_block` decodes literal and sequence sections, maintains
|
||||
FSE/Huffman repeat state, and executes compressed-block sequences.
|
||||
|
||||
The optimal block matcher, general decompression, dictionary-building, legacy,
|
||||
and CLI translation units are still C. They must move before the rewrite is
|
||||
complete. Keeping that boundary explicit prevents a passing hybrid build from
|
||||
being mistaken for the final all-Rust result.
|
||||
The optimal block matcher, high-level frame decompression, dictionary-building,
|
||||
legacy, and CLI translation units are still C. They must move before the
|
||||
rewrite is complete. Keeping that boundary explicit prevents a passing hybrid
|
||||
build from being mistaken for the final all-Rust result.
|
||||
|
||||
## Compatibility boundary
|
||||
|
||||
|
||||
Reference in New Issue
Block a user