[package]
edition = "2024"
rust-version = "1.92"
name = "structured-zstd"
version = "0.0.24"
authors = [
"Moritz Borcherding <moritz.borcherding@web.de>",
"Structured World Foundation <foundation@sw.foundation>",
]
build = false
exclude = [
"fuzz_decodecorpus/*",
"decodecorpus_files/*",
"dict_tests/files/**",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Pure Rust zstd implementation — managed fork of ruzstd. Dictionary decompression, no FFI."
homepage = "https://github.com/structured-world/structured-zstd"
readme = "README.md"
keywords = [
"zstd",
"zstandard",
"decompression",
"compression",
"pure-rust",
]
categories = ["compression"]
license = "Apache-2.0"
repository = "https://github.com/structured-world/structured-zstd"
[package.metadata.docs.rs]
features = [
"std",
"hash",
"dict_builder",
]
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
bench_internals = []
critical-section = ["dep:critical-section"]
default = [
"hash",
"std",
]
dict_builder = [
"std",
"dep:fastrand",
]
fuzz_exports = []
hash = ["dep:twox-hash"]
kernel_trace = ["std"]
rustc-dep-of-std = [
"dep:compiler_builtins",
"dep:core",
"dep:alloc",
]
std = []
[lib]
name = "structured_zstd"
path = "src/lib.rs"
[[example]]
name = "donor_compress_z000033"
path = "examples/donor_compress_z000033.rs"
[[example]]
name = "donor_cparams_check"
path = "examples/donor_cparams_check.rs"
[[example]]
name = "encode_l4"
path = "examples/encode_l4.rs"
[[example]]
name = "profile_decode"
path = "examples/profile_decode.rs"
[[example]]
name = "trace_fast_kernel"
path = "examples/trace_fast_kernel.rs"
[[test]]
name = "block_splitter_donor_parity"
path = "tests/block_splitter_donor_parity.rs"
required-features = ["bench_internals"]
[[test]]
name = "corpus_level22_gap"
path = "tests/corpus_level22_gap.rs"
[[test]]
name = "cross_validation"
path = "tests/cross_validation.rs"
[[test]]
name = "he_level22_ratio"
path = "tests/he_level22_ratio.rs"
[[test]]
name = "incompressibility_falsepos"
path = "tests/incompressibility_falsepos.rs"
[[bench]]
name = "bitstream"
path = "benches/bitstream.rs"
harness = false
required-features = ["bench_internals"]
[[bench]]
name = "compare_ffi"
path = "benches/compare_ffi.rs"
harness = false
required-features = ["dict_builder"]
[[bench]]
name = "compare_ffi_memory"
path = "benches/compare_ffi_memory.rs"
harness = false
required-features = ["dict_builder"]
[[bench]]
name = "compare_ffi_sequences"
path = "benches/compare_ffi_sequences.rs"
harness = false
required-features = [
"dict_builder",
"bench_internals",
]
[[bench]]
name = "decode_all"
path = "benches/decode_all.rs"
harness = false
[[bench]]
name = "decode_dict_handle"
path = "benches/decode_dict_handle.rs"
harness = false
[[bench]]
name = "dict_builder_fastcover"
path = "benches/dict_builder_fastcover.rs"
harness = false
required-features = ["dict_builder"]
[[bench]]
name = "huf_decode_kernels"
path = "benches/huf_decode_kernels.rs"
harness = false
[[bench]]
name = "wildcopy_candidates"
path = "benches/wildcopy_candidates.rs"
harness = false
required-features = ["bench_internals"]
[dependencies.alloc]
version = "1.0.0"
optional = true
package = "rustc-std-workspace-alloc"
[dependencies.compiler_builtins]
version = "0.1.2"
optional = true
[dependencies.core]
version = "1.0.0"
optional = true
package = "rustc-std-workspace-core"
[dependencies.critical-section]
version = "1.2"
optional = true
[dependencies.fastrand]
version = "2.3.0"
optional = true
[dependencies.twox-hash]
version = "2.0"
features = ["xxhash64"]
optional = true
default-features = false
[dev-dependencies.criterion]
version = "0.8"
[dev-dependencies.rand]
version = "0.10"
[dev-dependencies.zstd]
version = "0.13.3"
features = [
"zdict_builder",
"experimental",
]