From d8403672d5b942390626965707214d7f13930f21 Mon Sep 17 00:00:00 2001 From: ddidderr Date: Tue, 21 Jul 2026 09:37:27 +0200 Subject: [PATCH] docs(rust): record latest ownership boundaries Document the advanced one-shot begin/end seam, MT job-table teardown order, decompression heap-mode policy, and file-removal status policy so the migration boundary stays synchronized with the implementation. Test Plan: - git diff --cached --check --- rust/README.md | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/rust/README.md b/rust/README.md index 83c97e658..1f0d5dfcb 100644 --- a/rust/README.md +++ b/rust/README.md @@ -68,6 +68,9 @@ zstd ABI: 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. + Public advanced one-shot compression now uses the same Rust-owned + begin-then-end ordering boundary while C retains the private begin/end + 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. @@ -105,7 +108,9 @@ zstd ABI: accounting. Rust also owns frame-block preparation ordering and the MT serial turn/skip policy, including LDM-before-checksum sequencing; C callbacks retain the private match-state window, workspace operations, - synchronization, LDM state, and checksum state. + synchronization, LDM state, and checksum state. Rust also owns the normal + job-table teardown order, while C retains the private job storage and + synchronization callbacks. - Dictionary support - `zstd_ddict` owns, loads, copies, and references decode dictionaries. - Legacy decoding @@ -122,8 +127,8 @@ zstd ABI: - `zstd_decompress` owns the public decompression context, one-shot, dictionary, parameter, and streaming state machines. Its C shim retains the configuration-dependent context layout and platform details, plus - legacy and trace leaves; Rust owns the no-forward-progress threshold - policy, decoder storage allocation, custom memory dispatch, and the + legacy and trace leaves; Rust owns the no-forward-progress threshold and + heap-mode policies, decoder storage allocation, custom memory dispatch, and the `ZSTD_copyDCtx` prefix copy up to the projected `inBuff` field. - Command-line frontend - `zstd_cli` owns the Rust parser, safety policy, and dispatch. It is built @@ -136,8 +141,8 @@ zstd ABI: optional-format decompression loops, decompression result policy/final accounting, both shared- and separate-destination multi-file compression schedulers, and both shared- and separate-destination decompression - schedulers. Rust also owns the scalar compression metadata-transfer - decision; C retains the private stat probe, metadata operations, + schedulers. Rust also owns the scalar compression metadata-transfer and + file-removal status policies; 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,