[package]
edition = "2024"
name = "bluebox"
version = "0.1.4"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A fast DNS interceptor and cache for local networks"
readme = "README.md"
keywords = [
"dns",
"network",
"cache",
"blocking",
]
categories = ["network-programming"]
license = "MIT"
repository = "https://github.com/jeremie/bluebox"
[package.metadata.deb]
maintainer = "Jeremie Drouet <jeremie.drouet@gmail.com>"
section = "net"
priority = "optional"
conf-files = ["/etc/bluebox/config.toml"]
assets = [
[
"target/release/bluebox",
"usr/bin/",
"755",
],
[
"config.toml",
"etc/bluebox/config.toml",
"644",
],
[
"bluebox.service",
"lib/systemd/system/bluebox.service",
"644",
],
]
maintainer-scripts = "debian/"
extended-description = """
Bluebox is a fast DNS interceptor and cache designed for local networks.
It provides DNS caching and domain blocking capabilities with high performance."""
[lib]
name = "bluebox"
path = "src/lib.rs"
[[bin]]
name = "bluebox"
path = "src/main.rs"
[[test]]
name = "e2e_forwarding"
path = "tests/e2e_forwarding.rs"
[[test]]
name = "integration"
path = "tests/integration.rs"
[[bench]]
name = "blocker"
path = "benches/blocker.rs"
harness = false
[[bench]]
name = "packet"
path = "benches/packet.rs"
harness = false
[dependencies.anyhow]
version = "1.0"
[dependencies.dirs]
version = "6.0"
[dependencies.hickory-proto]
version = "0.25"
[dependencies.metrics]
version = "0.24"
[dependencies.metrics-exporter-prometheus]
version = "0.18"
[dependencies.moka]
version = "0.12"
features = ["future"]
[dependencies.parking_lot]
version = "0.12"
[dependencies.pnet]
version = "0.35"
[dependencies.reqwest]
version = "0.12"
features = [
"rustls-tls",
"gzip",
]
default-features = false
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.thiserror]
version = "2.0"
[dependencies.tokio]
version = "1.38"
features = ["full"]
[dependencies.toml]
version = "1.0"
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-subscriber]
version = "0.3"
[dev-dependencies.criterion]
version = "0.8"
features = ["html_reports"]
[dev-dependencies.proptest]
version = "1.10"
[dev-dependencies.tempfile]
version = "3.25"
[dev-dependencies.tokio-test]
version = "0.4"
[dev-dependencies.wiremock]
version = "0.6"
[lints.clippy]
missing_errors_doc = "allow"
missing_panics_doc = "allow"
module_name_repetitions = "allow"
must_use_candidate = "allow"
[lints.clippy.all]
level = "warn"
priority = -1
[lints.clippy.nursery]
level = "warn"
priority = -1
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.rust]
unsafe_code = "forbid"
[profile.bench]
lto = true
codegen-units = 1
[profile.release]
lto = true
codegen-units = 1
panic = "abort"
strip = true