docs(rust): refresh compression migration boundary

Document that Rust now owns CCtx dictionary/prefix attachment dispatch and the
multithreaded compression-job stage sequence, while C retains reset policy,
private context and worker state, dictionary-content loading, and codec
callbacks.

Test Plan:
- Documentation-only change; code validation was completed before this commit.
- Rust library all-target tests: 517 passed; legacy feature matrix: 572 passed.
- Native CLI tests (41), test-zstd, fuzzer (319), zstream (152 + 297), and
  decode corpus (1,647) passed under the serial 40 GiB virtual-memory cap.
- Commit is intentionally unsigned because configured GPG pinentry was
  unavailable and hung during the signing attempt.
This commit is contained in:
2026-07-19 09:15:05 +02:00
parent 1655302473
commit 492c6292c9
+13 -11
View File
@@ -82,8 +82,8 @@ zstd ABI:
- The `zstdmt_compress` integration keeps job descriptors and synchronization - The `zstdmt_compress` integration keeps job descriptors and synchronization
private to C while Rust owns input-retention scans, reusable input-range private to C while Rust owns input-retention scans, reusable input-range
overlap decisions, outer scheduling and end-directive adjustments, overlap decisions, outer scheduling and end-directive adjustments,
job-creation decisions, and pending-output decisions through scalar job job-creation decisions, compression-job stage sequencing and error flow,
projections. and pending-output decisions through scalar job projections.
- Dictionary support - Dictionary support
- `zstd_ddict` owns, loads, copies, and references decode dictionaries. - `zstd_ddict` owns, loads, copies, and references decode dictionaries.
- Legacy decoding - Legacy decoding
@@ -123,15 +123,17 @@ zstd ABI:
feature, because the parser layer requires the C `fileio` backend that feature, because the parser layer requires the C `fileio` backend that
tests do not compile. tests do not compile.
Dictionary-ingestion dispatch, the CLI zstd compression stream loop, the Dictionary-ingestion dispatch, CCtx dictionary/prefix attachment dispatch, the
single-threaded buffered/stable stream state machine, MT outer scheduling and CLI zstd compression stream loop, the single-threaded buffered/stable stream
flush policy, sequence-store and block policy, external-sequence/literals state machine, MT outer scheduling and flush policy, MT compression-job stage
block loop, optional-format decompression loops, block decoder wrappers, and sequencing and error flow, sequence-store and block policy,
decompression result policy now run in Rust. CDict lifecycle, the private external-sequence/literals block loop, optional-format decompression loops,
dictionary-content loader, private CCtx/matchfinder/workspace operations, and block decoder wrappers, and decompression result policy now run in Rust. CDict
codec/adaptive-policy callbacks remain in C. The remaining C paths must move lifecycle, the private dictionary-content loader, reset policy, private
before the rewrite is complete. Keeping that boundary explicit prevents a CCtx/matchfinder/workspace operations, and codec/adaptive-policy callbacks
passing hybrid build from being mistaken for the final all-Rust result. remain in C. The remaining C paths 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.
## Legacy decoding ## Legacy decoding