Replace programs/fileio_asyncio.c with a declaration-only shim and register Rust's async file-I/O implementation in the library archive. Preserve the C ABI for pool and job contexts, including DEBUGLEVEL pointer-based pthread wrappers, and select separate Rust build configurations for those layouts. Keep ordered-read queue state locked while waiting, drain queued work before shutdown frees job buffers, and use platform large-file seeks for sparse writes. Test Plan: - `cargo test --no-default-features --lib fileio_asyncio` (7 passed). - `cargo test --no-default-features --features debug-pthread --lib fileio_asyncio` (7 passed). - `cargo check --all-targets`, clippy library/benches/tests, and nightly fmt check (passed). - Threaded program build and README round-trip (passed). - `make -C tests poolTests` and `./tests/poolTests` (passed). - Current C shim object defines no `AIO_*` symbols; the Rust archive exports all 20 declarations. - Full standalone all-target Rust tests and the default CLI archive rebuild remain affected by unrelated C/Rust integration and another worker's in-progress benchmark changes.
33 lines
861 B
TOML
33 lines
861 B
TOML
[package]
|
|
name = "zstd-rs"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
|
|
[lib]
|
|
crate-type = ["staticlib"]
|
|
|
|
[features]
|
|
default = ["compression", "decompression", "dict-builder"]
|
|
compression = []
|
|
decompression = []
|
|
dict-builder = []
|
|
huf-force-decompress-x1 = []
|
|
huf-force-decompress-x2 = []
|
|
# POSIX DEBUGLEVEL >= 1 replaces pthread objects in the C ABI with pointers.
|
|
debug-pthread = []
|
|
# Legacy-format decoders (zstd v0.1 .. v0.7). Never default features: the
|
|
# build systems map ZSTD_LEGACY_SUPPORT=N to the features for versions >= N,
|
|
# exactly mirroring which lib/legacy/zstd_v0N.c files the C build compiles.
|
|
# A feature whose version is not yet ported to Rust gates nothing; the
|
|
# original C file still provides that decoder.
|
|
legacy-v01 = []
|
|
legacy-v02 = []
|
|
legacy-v03 = []
|
|
legacy-v04 = []
|
|
legacy-v05 = []
|
|
legacy-v06 = []
|
|
legacy-v07 = []
|
|
|
|
[dependencies]
|
|
libc = "0.2"
|