bluebox 0.1.4

A fast DNS interceptor and cache for local networks
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[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