[package]
edition = "2024"
rust-version = "1.89"
name = "mbrotli"
version = "0.4.1"
build = false
exclude = [
".github/**",
"architecture/**",
"benchmarks/**",
"brotli-ffi/**",
"docs/**",
"fuzz/**",
"specifications/**",
"target/**",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Fast Brotli (RFC 7932 and RFC 9841) compression and decompression in safe Rust; encoding is byte-identical to Google's reference encoder"
homepage = "https://github.com/Mnwa/mbrotli"
documentation = "https://docs.rs/mbrotli"
readme = "README.md"
keywords = [
"brotli",
"compression",
"encoder",
"simd",
]
categories = [
"compression",
"algorithms",
"no-std",
]
license = "MIT"
repository = "https://github.com/Mnwa/mbrotli"
[features]
compression = [
"dep:fearless_simd",
"dep:thiserror",
]
decompression = [
"dep:fearless_simd",
"dep:thiserror",
]
default = [
"std",
"compression",
"decompression",
]
diagnostics = []
experimental = []
hotpath = [
"dep:hotpath",
"hotpath/hotpath",
]
hotpath-alloc = [
"hotpath",
"hotpath/hotpath-alloc",
]
hotpath-cpu = [
"hotpath",
"hotpath/hotpath-cpu",
]
no_std = [
"dep:libm",
"fearless_simd?/libm",
]
std = [
"fearless_simd?/std",
"thiserror?/std",
]
[lib]
name = "mbrotli"
path = "src/lib.rs"
[[example]]
name = "compress"
path = "examples/compress.rs"
required-features = ["compression"]
[[example]]
name = "parallel"
path = "examples/parallel.rs"
required-features = ["compression"]
[[example]]
name = "profile_compressor"
path = "examples/profile_compressor.rs"
required-features = ["compression"]
[[example]]
name = "profile_decompressor"
path = "examples/profile_decompressor.rs"
required-features = [
"compression",
"decompression",
]
[[example]]
name = "profile_framed_decoder"
path = "examples/profile_framed_decoder.rs"
required-features = [
"compression",
"decompression",
"experimental",
]
[[test]]
name = "compressor_memory"
path = "tests/compressor_memory.rs"
[[test]]
name = "decompress"
path = "tests/decompress.rs"
[[test]]
name = "decompress_c"
path = "tests/decompress_c.rs"
[[test]]
name = "decompress_contract"
path = "tests/decompress_contract.rs"
[[test]]
name = "decompress_golden"
path = "tests/decompress_golden.rs"
[[test]]
name = "decompress_heavy"
path = "tests/decompress_heavy.rs"
[[test]]
name = "decompress_io"
path = "tests/decompress_io.rs"
[[test]]
name = "decompress_memory"
path = "tests/decompress_memory.rs"
[[test]]
name = "decompress_owned"
path = "tests/decompress_owned.rs"
[[test]]
name = "decompress_wire"
path = "tests/decompress_wire.rs"
[[test]]
name = "dictionary"
path = "tests/dictionary.rs"
[[test]]
name = "dictionary_memory"
path = "tests/dictionary_memory.rs"
[[test]]
name = "differential_c"
path = "tests/differential_c.rs"
[[test]]
name = "flush"
path = "tests/flush.rs"
[[test]]
name = "framed_decoder"
path = "tests/framed_decoder.rs"
[[test]]
name = "framed_encoder"
path = "tests/framed_encoder.rs"
[[test]]
name = "framed_encoder_memory"
path = "tests/framed_encoder_memory.rs"
[[test]]
name = "framed_seek"
path = "tests/framed_seek.rs"
[[test]]
name = "framing"
path = "tests/framing.rs"
[[test]]
name = "greedy_qualities"
path = "tests/greedy_qualities.rs"
[[test]]
name = "hq_forest_allocation"
path = "tests/hq_forest_allocation.rs"
[[test]]
name = "large_window"
path = "tests/large_window.rs"
[[test]]
name = "no_std"
path = "tests/no_std.rs"
[[test]]
name = "parallel"
path = "tests/parallel.rs"
[[test]]
name = "public_api"
path = "tests/public_api.rs"
[[test]]
name = "randomized"
path = "tests/randomized.rs"
[[test]]
name = "reuse"
path = "tests/reuse.rs"
[[test]]
name = "roundtrip"
path = "tests/roundtrip.rs"
[[test]]
name = "serialized_dictionary"
path = "tests/serialized_dictionary.rs"
[[test]]
name = "simd_backends"
path = "tests/simd_backends.rs"
[[test]]
name = "stream_offset"
path = "tests/stream_offset.rs"
[[test]]
name = "streaming"
path = "tests/streaming.rs"
[[test]]
name = "track_a_lifecycle"
path = "tests/track_a_lifecycle.rs"
[[test]]
name = "vendor_corpus"
path = "tests/vendor_corpus.rs"
[[test]]
name = "window_bits"
path = "tests/window_bits.rs"
[[test]]
name = "writer_faults"
path = "tests/writer_faults.rs"
[[bench]]
name = "alloc"
path = "benches/alloc.rs"
harness = false
required-features = ["compression"]
[[bench]]
name = "compress"
path = "benches/compress.rs"
harness = false
required-features = ["compression"]
[[bench]]
name = "decompress"
path = "benches/decompress.rs"
harness = false
required-features = ["decompression"]
[[bench]]
name = "framed_compress"
path = "benches/framed_compress.rs"
harness = false
required-features = [
"compression",
"experimental",
]
[[bench]]
name = "framed_decompress"
path = "benches/framed_decompress.rs"
harness = false
required-features = [
"compression",
"decompression",
"experimental",
]
[[bench]]
name = "framed_raw_regression"
path = "benches/framed_raw_regression.rs"
harness = false
required-features = [
"compression",
"decompression",
]
[[bench]]
name = "parallel"
path = "benches/parallel.rs"
harness = false
required-features = ["compression"]
[[bench]]
name = "track_b"
path = "benches/track_b.rs"
harness = false
required-features = [
"compression",
"experimental",
]
[dependencies.fearless_simd]
version = "0.7"
optional = true
default-features = false
[dependencies.hotpath]
version = "0.25"
optional = true
[dependencies.libm]
version = "0.2"
optional = true
[dependencies.thiserror]
version = "2"
optional = true
default-features = false
[dev-dependencies.criterion]
version = "0.8"
[dev-dependencies.fearless_simd]
version = "0.7"
features = [
"force_support_fallback",
"std",
]
default-features = false
[dev-dependencies.rayon]
version = "1.12"
[dev-dependencies.tempfile]
version = "3.27"