docs(rust): refresh migration boundary

Document that the frame epilogue, produced-output flush policy, and gzip codec
leaf now execute in Rust. Narrow the remaining C-owned list to the generic
compression state machine, MT scheduling/outer flush orchestration, and the
xz/lzma/lz4 codec leaves so the README remains an accurate progress boundary.

Test Plan:
- git diff --cached --check
This commit is contained in:
2026-07-18 23:08:08 +02:00
parent 05561c7494
commit e38c14b324
+9 -7
View File
@@ -99,8 +99,9 @@ zstd ABI:
- `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,
so library builds do not acquire program-only dependencies. The C so library builds do not acquire program-only dependencies. The C
`fileio` layer retains format-specific codec callbacks and metadata, while `fileio` layer retains the remaining format-specific codec callbacks and
Rust owns the mixed-format probe/dispatch loop. Rust already owns the file metadata, while Rust owns the mixed-format probe/dispatch loop and gzip
codec leaf. Rust already owns the file
preference policy, filename decisions, source/destination opening, preference policy, filename decisions, source/destination opening,
dictionary buffers, asynchronous I/O pools, and pass-through copy leaf. dictionary buffers, asynchronous I/O pools, and pass-through copy leaf.
- `timefn` provides the monotonic nanosecond clock behind `UTIL_time_t`, - `timefn` provides the monotonic nanosecond clock behind `UTIL_time_t`,
@@ -112,11 +113,12 @@ 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.
High-level frame-compression orchestration, multithreaded job scheduling and Generic high-level frame-compression state-machine orchestration,
flush orchestration, and several format-specific CLI codec paths are still C. multithreaded job scheduling and the remaining outer flush orchestration, and
They must move before the rewrite is complete. Keeping that boundary explicit the xz/lzma/lz4 CLI codec paths are still C. The frame epilogue, produced-output
prevents a passing hybrid build from being mistaken for the final all-Rust flush policy, and gzip codec leaf now run in Rust. The remaining C paths must
result. 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