[package]
name = "fafb-q"
version = "0.1.9"
edition = "2024"
description = "A centralized queue server with TCP and HTTP interfaces"
license = "MIT"
repository = "https://bitbucket.org/thermsio/fafb-q"
keywords = ["queue", "messaging", "server"]
categories = ["network-programming"]

[[bin]]
name = "fafb-q"
path = "src/main.rs"

[profile.release]
lto = true
strip = true
codegen-units = 1

[dependencies]
tokio = { version = "1", features = ["full"] }
serde = { version = "1", features = ["derive", "rc"] }
toml = "0.8"
bytes = "1"
tokio-util = { version = "0.7", features = ["codec"] }
axum = "0.8"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
tracing-appender = "0.2"
thiserror = "2"
subtle = "2"
serde_json = "1"
bincode = "1"
clap = { version = "4", features = ["derive", "env"] }
futures = "0.3"
metrics = "0.24"
metrics-exporter-prometheus = "0.16"
lru = "0.16.3"
libc = "0.2.183"
base64 = "0.22"
rustls = { version = "0.23", default-features = false, features = ["ring", "logging", "std", "tls12"] }
tokio-rustls = { version = "0.26", default-features = false, features = ["ring"] }
arc-swap = "1"
notify = { version = "7", default-features = false, features = ["macos_kqueue"] }
rustls-pemfile = "2"
x509-parser = "0.16"
ring = "0.17"
fastrand = "2"
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls-manual-roots"] }
colored = "3"
clap_complete = "4"

[features]
default = []
test-support = []
cluster = []

[dev-dependencies]
tempfile = "3"
metrics-util = "0.19"
criterion = { version = "0.5", features = ["html_reports"] }
tokio-test = "0.4"
proptest = "1"
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls-manual-roots"] }
fafb-q = { path = ".", features = ["test-support"] }
rcgen = { version = "0.13", features = ["pem"] }

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

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

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

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

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