From 57e33999307e375bd039ffb12814c0f86275526b Mon Sep 17 00:00:00 2001 From: ddidderr Date: Sat, 18 Jul 2026 19:56:57 +0200 Subject: [PATCH] docs(rust): refresh dictionary migration boundary Document that the Rust dictionary-builder modules now own sample analysis, training, and dictionary assembly, with the original C files retained only as ABI/build shims. Remove the stale statement that only suffix-array construction has migrated and keep the remaining C boundary focused on compression orchestration, benchmark reporting, and format-specific CLI I/O. Test Plan: - git diff --cached --check - make -C tests -j2 test-zstd (passed before this documentation-only commit) --- rust/README.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/rust/README.md b/rust/README.md index 34e629bf9..5fe43a311 100644 --- a/rust/README.md +++ b/rust/README.md @@ -57,8 +57,10 @@ zstd ABI: maintenance, sequence generation, and sequence consumption. - Dictionary building - `divsufsort` constructs the suffix array that drives the legacy `ZDICT` - trainer (`ZDICT_trainFromBuffer_legacy`). The sample analysis and - dictionary assembly in `zdict.c`, `cover.c`, and `fastcover.c` remain C. + trainer (`ZDICT_trainFromBuffer_legacy`); `dict_builder_zdict`, + `dict_builder_cover`, and `dict_builder_fastcover` own the sample analysis, + training, and dictionary assembly. The corresponding C translation units + are declaration-only ABI shims. - Runtime support - `threading` provides platform pthread wrappers required by zstd headers. - `pool` implements the bounded worker pool used by multithreaded compression. @@ -94,11 +96,10 @@ zstd ABI: Rust parser through the `ZSTD_NOBENCH`-gated bridge in `zstdcli.c`. The optimal block matcher, most high-level frame-compression orchestration, -dictionary-building except suffix-array construction, benchmark orchestration -and reporting (`benchzstd`), and several format-specific CLI I/O paths are -still C. They 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. +benchmark orchestration and reporting (`benchzstd`), and several +format-specific CLI I/O paths are still C. They 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