feat(compress): port multithreaded resource pools

Move the reusable buffer and compression-context pools behind a Rust
implementation with a narrow C ABI adapter. The scheduler, job table, serial
LDM state, and stream orchestration remain in C until their private layouts
are ported.

Keep context types opaque across Rust modules so the pool bridge does not
depend on private C layout declarations. This also keeps the existing custom
allocator and pool replacement contracts intact.

Test Plan:
- RUSTC_WRAPPER= CARGO_BUILD_RUSTC_WRAPPER= cargo clippy --manifest-path
  rust/Cargo.toml --all-targets -- -D warnings
- RUSTC_WRAPPER= CARGO_BUILD_RUSTC_WRAPPER= cargo test --manifest-path
  rust/Cargo.toml zstdmt_compress
- make -B -C lib lib-mt
- git diff --cached --check
This commit is contained in:
2026-07-12 10:13:41 +02:00
parent e75574690b
commit 45cb1f509e
4 changed files with 681 additions and 179 deletions
+2
View File
@@ -63,3 +63,5 @@ pub mod zstd_opt;
pub mod zstd_opt_tree;
#[cfg(feature = "compression")]
pub mod zstd_presplit;
#[cfg(feature = "compression")]
pub mod zstdmt_compress;