content: [package]
  name = "expiring-bloom-rs"
  version = "0.4.10"
  edition = "2024"
  authors = ["oiwn"]
  description = "A time-decaying Bloom filter implementation with multiple storage backends"
  repository = "https://github.com/oiwn/expiring-bloom-rs"
  documentation = "https://docs.rs/expiring-bloom-rs"
  homepage = "https://github.com/yourusername/expiring-bloom-rs"
  license = "MIT"
  readme = "README.md"
  keywords = ["bloom-filter", "probabilistic", "time-decay", "cache", "rate-limiting"]
  categories = ["algorithms", "caching", "data-structures"]
  
  default-run = "expblf"
  
  [dependencies]
  bincode = "2"
  fnv = "1"
  murmur3 = "0.5"
  thiserror = "2"
  derive_builder = "0.20"
  tracing-subscriber = { version = "0.3", features = ["env-filter"] }
  tracing = "0.1"
  bitvec = "1"
  serde = { version = "1", features = ["derive"] }
  
  # server
  dotenvy = { version = "0.15", optional = true }
  axum = { version = "0.8", optional = true }
  tokio = { version = "1", features = ["full"], optional = true }
  utoipa = { version = "5.3", features = ["axum_extras"], optional = true }
  utoipa-swagger-ui = { version = "9", features = ["axum"], optional = true }
  serde_json = { version = "1", optional = true }
  # cli
  clap = { version = "4.5", features = ["derive"], optional = true }
  ratatui = { version = "0.29", optional = true }
  unicode-width = { version = "0.2", optional = true }
  # fjall
  fjall = { version = "2.8", optional = true }
  async-trait = "0.1"
  
  [dev-dependencies]
  rand = "0.9"
  expiring-bloom-rs = { path = ".", features = ["fjall", "server", "cli"] }
  criterion = { version = "0.5", features = ["html_reports"] }
  tower = "0.5"
  comfy-table = "7.1"
  colored = "3.0"
  tokio = "1"
  
  [[bin]]
  name = "expblf"
  path = "src/bin/cli.rs"
  required-features = ["fjall", "cli"]
  
  [[bin]]
  name = "expblf-server"
  path = "src/bin/server.rs"
  required-features = ["server", "fjall"]
  
  [package.metadata.docs.rs]
  no-default-features = true
  features = ["fjall", "cli"]
  all-features = false
  
  [features]
  default = ["server", "cli", "fjall"]
  docs-only = ["cli", "fjall"]
  fjall = ["dep:fjall"]
  server = ["dep:axum", "dep:tokio", "dep:utoipa", "dep:utoipa-swagger-ui", "dep:serde_json", "dep:dotenvy", "fjall"]
  cli = ["dep:clap", "dep:ratatui", "dep:unicode-width", "fjall"]
  tests = []
  
  [package.metadata.docs]
  features = ["cli", "fjall"]  # Exclude "server" feature
  all-features = false
  
  [lints.rust]
  async_fn_in_trait = "allow"
  
  [[bench]]
  name = "bloom_benchmarks"
  harness = false
  
  [[bench]]
  name = "bloom_fjall_benchmarks"
  harness = false
  
  [[bench]]
  name = "fjall_snapshot_benchmarks"
  harness = false
  
  [[bench]]
  name = "storage_benchmarks"
  harness = false
  