docs(rust): refresh migration boundary

Document the Rust-owned public end-of-frame compression orchestration and both multi-file compression scheduler boundaries, including the C callbacks that remain responsible for private file and codec operations.

Test Plan:
- git diff --cached --check
This commit is contained in:
2026-07-19 10:52:42 +02:00
parent fbc80de7dc
commit 4dc6761e60
+13 -9
View File
@@ -61,8 +61,9 @@ zstd ABI:
Rust while C retains the private contexts and mutation callbacks.
The public sequence APIs likewise use Rust-owned validation, frame-header,
checksum, and output-accounting orchestration around C-owned block state.
The `ZSTD_compress2_c` fallback also uses a Rust-owned stable-buffer
orchestration boundary while C retains the context reset and stream adapter.
The public end-of-frame path and the `ZSTD_compress2_c` fallback also use
Rust-owned orchestration boundaries while C retains the context reset,
stream adapter, checksum/epilogue, and trace callbacks.
- `zstd_compress_params` owns the compression-level tables (formerly
`clevels.h`), parameter bounds, clamping, validation, table selection,
source/dictionary adjustment, and match-state/CDict size estimation.
@@ -118,8 +119,10 @@ zstd ABI:
asynchronous-pool adapters, metadata, zstd codec/error mapping, and
adaptive-policy integration, while Rust owns the mixed-format probe/dispatch
loop, zstd stream-compression I/O loop, scalar adaptive decisions,
optional-format decompression loops, and decompression result policy/final
accounting.
optional-format decompression loops, decompression result policy/final
accounting, and both shared- and separate-destination multi-file
compression schedulers. C retains destination-name construction and the
private file/resource callbacks for the separate-destination path.
Rust already owns the file preference policy, filename decisions,
source/destination opening, dictionary buffers, asynchronous I/O pools,
and pass-through copy leaf.
@@ -134,16 +137,17 @@ zstd ABI:
Dictionary-ingestion dispatch, CCtx dictionary/prefix attachment dispatch, the
CLI zstd compression stream loop, scalar adaptive decisions, and the
shared-destination multi-file compression scheduler,
shared- and separate-destination multi-file compression schedulers,
single-threaded stream initialization and the buffered/stable stream state
machine, MT stream initialization, MT outer scheduling and flush policy, MT
compression-job stage sequencing and error flow, public sequence-API
orchestration, sequence-store and block policy,
external-sequence/literals block loop, optional-format decompression loops,
block decoder wrappers, and decompression result policy now run in Rust. CDict
lifecycle, the private dictionary-content loader, reset policy, private
CCtx/matchfinder/workspace operations, and codec/adaptive-policy callbacks
remain in C. The remaining C paths must move before the rewrite is complete.
block decoder wrappers, decompression result policy, and public end-of-frame
compression orchestration now run in Rust. CDict lifecycle, the private
dictionary-content loader, reset policy, private CCtx/matchfinder/workspace
operations, and codec/adaptive-policy callbacks 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.