From 0d187f9327f2c0cafab1c021c388783b7d8ddbac Mon Sep 17 00:00:00 2001 From: ddidderr Date: Sat, 18 Jul 2026 23:29:04 +0200 Subject: [PATCH] docs(rust): refresh migration boundary Document that the Rust CLI now owns the gzip, xz/lzma, and LZ4 codec leaves as well as MT job creation, while the generic frame-compression state machine and remaining MT scheduling/outer-flush orchestration remain C-owned. Keep the hybrid boundary explicit so compatibility-suite success is not mistaken for completion of the full rewrite. Test Plan: - git diff --cached --check - reviewed rust/README.md against the committed Rust/C ownership boundary --- rust/README.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/rust/README.md b/rust/README.md index 88e34734a..bc5fe66f4 100644 --- a/rust/README.md +++ b/rust/README.md @@ -99,9 +99,9 @@ zstd ABI: - `zstd_cli` owns the Rust parser, safety policy, and dispatch. It is built by the separate `cli/` static-library package only for program archives, so library builds do not acquire program-only dependencies. The C - `fileio` layer retains the remaining format-specific codec callbacks and - metadata, while Rust owns the mixed-format probe/dispatch loop and gzip - codec leaf. Rust already owns the file + `fileio` layer retains the format-specific codec callbacks and metadata, + while Rust owns the mixed-format probe/dispatch loop and gzip, xz/lzma, + and lz4 codec leaves. Rust already owns the file preference policy, filename decisions, source/destination opening, dictionary buffers, asynchronous I/O pools, and pass-through copy leaf. - `timefn` provides the monotonic nanosecond clock behind `UTIL_time_t`, @@ -113,12 +113,12 @@ zstd ABI: feature, because the parser layer requires the C `fileio` backend that tests do not compile. -Generic high-level frame-compression state-machine orchestration, -multithreaded job scheduling and the remaining outer flush orchestration, and -the xz/lzma/lz4 CLI codec paths are still C. The frame epilogue, produced-output -flush policy, and gzip codec leaf now run in Rust. 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. +Generic high-level frame-compression state-machine orchestration and the +remaining multithreaded scheduling/outer-flush orchestration are still C. The +frame epilogue, produced-output flush policy, MT job-creation policy, and +gzip/xz/lzma/lz4 codec leaves now run in Rust. 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