docs(rust): refresh migration map
Record the new ownership boundaries for frame-chunk compression, multithreaded job decisions, sequence decoder selection, and mixed-format CLI dispatch. Keep the remaining C-owned orchestration explicitly visible while the rewrite continues. Test Plan: - git diff --cached --check - cargo +nightly fmt --manifest-path rust/Cargo.toml -- --check - cargo +nightly fmt --manifest-path rust/cli/Cargo.toml -- --check
This commit is contained in:
+12
-4
@@ -44,7 +44,10 @@ zstd ABI:
|
|||||||
and the outer block-dispatch decision. `zstd_compress` also owns ordinary
|
and the outer block-dispatch decision. `zstd_compress` also owns ordinary
|
||||||
sequence-block entropy emission, sequence collection, and the legacy RLE
|
sequence-block entropy emission, sequence collection, and the legacy RLE
|
||||||
compatibility gate after C builds the sequence store; C retains the
|
compatibility gate after C builds the sequence store; C retains the
|
||||||
sequence-store builder and no-compress fallback.
|
sequence-store builder and no-compress fallback. Rust also owns the
|
||||||
|
frame-chunk block loop, including block sizing, target/split/internal
|
||||||
|
dispatch, output accounting, and frame-state updates; C supplies the
|
||||||
|
private state-preparation and block-compression callbacks.
|
||||||
- `zstd_compress_frame` serializes frame headers, skippable frames, and the
|
- `zstd_compress_frame` serializes frame headers, skippable frames, and the
|
||||||
last empty block; it takes scalar frame parameters so the C-owned
|
last empty block; it takes scalar frame parameters so the C-owned
|
||||||
`ZSTD_CCtx_params` layout never crosses the language boundary.
|
`ZSTD_CCtx_params` layout never crosses the language boundary.
|
||||||
@@ -71,6 +74,9 @@ zstd ABI:
|
|||||||
- Runtime support
|
- Runtime support
|
||||||
- `threading` provides platform pthread wrappers required by zstd headers.
|
- `threading` provides platform pthread wrappers required by zstd headers.
|
||||||
- `pool` implements the bounded worker pool used by multithreaded compression.
|
- `pool` implements the bounded worker pool used by multithreaded compression.
|
||||||
|
- The `zstdmt_compress` integration keeps job descriptors and synchronization
|
||||||
|
private to C while Rust owns input-retention scans and pending-output
|
||||||
|
decisions through scalar job projections.
|
||||||
- Dictionary support
|
- Dictionary support
|
||||||
- `zstd_ddict` owns, loads, copies, and references decode dictionaries.
|
- `zstd_ddict` owns, loads, copies, and references decode dictionaries.
|
||||||
- Legacy decoding
|
- Legacy decoding
|
||||||
@@ -80,7 +86,9 @@ zstd ABI:
|
|||||||
shims for the native build.
|
shims for the native build.
|
||||||
- Block decompression
|
- Block decompression
|
||||||
- `zstd_decompress_block` decodes literal and sequence sections, maintains
|
- `zstd_decompress_block` decodes literal and sequence sections, maintains
|
||||||
FSE/Huffman repeat state, and executes compressed-block sequences.
|
FSE/Huffman repeat state, executes compressed-block sequences, and selects
|
||||||
|
the short or long sequence decoder from projected configuration and history
|
||||||
|
state. C retains the decoder-context layout and configuration projection.
|
||||||
- `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
|
||||||
@@ -90,8 +98,8 @@ 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 still owns format-specific dispatch, metadata, and the
|
`fileio` layer retains format-specific codec callbacks and metadata, while
|
||||||
remaining C streaming/orchestration paths. Rust already owns the file
|
Rust owns the mixed-format probe/dispatch loop. 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`,
|
||||||
|
|||||||
Reference in New Issue
Block a user