[package]
name = "bloomz"
version = "0.1.0"
edition = "2021"
authors = ["pixperk <your-email@example.com>"]
license = "MIT OR Apache-2.0"
description = "A fast, flexible Bloom filter library for Rust with parallel operations support"
homepage = "https://github.com/pixperk/bloomz"
repository = "https://github.com/pixperk/bloomz"
documentation = "https://docs.rs/bloomz"
readme = "README.md"
keywords = ["bloom-filter", "probabilistic", "data-structure", "hash", "parallel"]
categories = ["algorithms", "data-structures", "concurrency"]
exclude = [
    "target/*",
    "*.log",
    ".git/*",
]

[dependencies]
serde = { version = "1.0", optional = true, features = ["derive"] }
serde_bytes = { version = "0.11", optional = true }
serde_json = { version = "1.0", optional = true }
ahash = { version = "0.8", optional = true }
xxhash-rust = { version = "0.8", optional = true, features = ["xxh3"] }
rayon = { version = "1.7", optional = true }

[features]
default = ["std"]
std = []
serde = ["dep:serde", "dep:serde_bytes", "dep:serde_json"]
fast-ahash = ["dep:ahash"]
fast-xxh3 = ["dep:xxhash-rust"]
rayon = ["dep:rayon"]

[dev-dependencies]
criterion = { version = "0.5", features = ["html_reports"] }
# Bring optional hashers into benches when their features are enabled.
ahash = { version = "0.8"}
xxhash-rust = { version = "0.8"}

[[bench]]
name = "bloom_hashers"
harness = false

[[bench]]
name = "parallel_bloom"
harness = false