docs(rust): record migrated policy seams

Keep the migration boundary accurate after moving frame-progression dispatch, the decompression no-forward-progress threshold, and compression metadata-transfer selection into Rust. The README now states which scalar inputs Rust owns and which private callbacks, probes, and operations remain in C.

Test Plan:

- git diff --cached --check

- Capped clippy, CLI tests, native build, smoke test, and full upstream suite passed before this documentation-only commit
This commit is contained in:
2026-07-21 08:53:43 +02:00
parent 71cad090cf
commit 04ebb65d0f
+10 -5
View File
@@ -68,6 +68,9 @@ zstd ABI:
The public end-of-frame path and the `ZSTD_compress2_c` fallback also use The public end-of-frame path and the `ZSTD_compress2_c` fallback also use
Rust-owned orchestration boundaries while C retains the context reset, Rust-owned orchestration boundaries while C retains the context reset,
stream adapter, checksum/epilogue, and trace callbacks. stream adapter, checksum/epilogue, and trace callbacks.
Public frame-progression dispatch is Rust-owned as well; C projects the
scalar single-thread inputs and keeps the private MT context behind a
callback.
- `zstd_compress_params` owns the compression-level tables (formerly - `zstd_compress_params` owns the compression-level tables (formerly
`clevels.h`), parameter bounds, clamping, validation, table selection, `clevels.h`), parameter bounds, clamping, validation, table selection,
source/dictionary adjustment, and match-state/CDict size estimation. source/dictionary adjustment, and match-state/CDict size estimation.
@@ -119,9 +122,9 @@ zstd ABI:
- `zstd_decompress` owns the public decompression context, one-shot, - `zstd_decompress` owns the public decompression context, one-shot,
dictionary, parameter, and streaming state machines. Its C shim retains dictionary, parameter, and streaming state machines. Its C shim retains
the configuration-dependent context layout and platform details, plus the configuration-dependent context layout and platform details, plus
legacy and trace leaves; Rust owns decoder storage allocation, custom legacy and trace leaves; Rust owns the no-forward-progress threshold
memory dispatch, and the `ZSTD_copyDCtx` prefix copy up to the projected policy, decoder storage allocation, custom memory dispatch, and the
`inBuff` field. `ZSTD_copyDCtx` prefix copy up to the projected `inBuff` field.
- Command-line frontend - Command-line frontend
- `zstd_cli` owns the Rust parser, safety policy, and dispatch. It is built - `zstd_cli` owns the Rust parser, safety policy, and dispatch. It is built
by the separate `cli/` static-library package only for program archives, by the separate `cli/` static-library package only for program archives,
@@ -133,8 +136,10 @@ zstd ABI:
optional-format decompression loops, decompression result policy/final optional-format decompression loops, decompression result policy/final
accounting, both shared- and separate-destination multi-file compression accounting, both shared- and separate-destination multi-file compression
schedulers, and both shared- and separate-destination decompression schedulers, and both shared- and separate-destination decompression
schedulers. C retains destination-name construction and the private schedulers. Rust also owns the scalar compression metadata-transfer
file/resource/format callbacks for these scheduler boundaries. decision; C retains the private stat probe, metadata operations,
destination-name construction, and the private file/resource/format
callbacks for these scheduler boundaries.
Rust already owns the file preference policy, filename decisions, Rust already owns the file preference policy, filename decisions,
source/destination opening, dictionary buffers, asynchronous I/O pools, source/destination opening, dictionary buffers, asynchronous I/O pools,
and pass-through copy leaf. and pass-through copy leaf.