[package]
edition = "2021"
rust-version = "1.88"
name = "hickory-server"
version = "0.26.2"
authors = ["The contributors to Hickory DNS"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = """
hickory-server is a library for integrating safe and secure DNS servers into
an async Tokio application. It supports a variety of protocol features
(DNSSEC, TSIG, SIG(0), DoT, DoQ, DoH). Servers can be operated in an authoritative
role, or as a forwarding resolver, stub resolver, or a recursive resolver
(experimental).
"""
homepage = "https://hickory-dns.org/"
documentation = "https://docs.rs/hickory-server"
readme = "README.md"
keywords = [
"dns",
"dnssec",
]
categories = ["network-programming"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/hickory-dns/hickory-dns"
[package.metadata.docs.rs]
all-features = true
default-target = "x86_64-unknown-linux-gnu"
targets = [
"x86_64-apple-darwin",
"x86_64-pc-windows-msvc",
]
rustdoc-args = [
"--cfg",
"docsrs",
]
[package.metadata.cargo-all-features]
skip_optional_dependencies = true
max_combination_size = 2
denylist = [
"__tls",
"__https",
"__quic",
"__h3",
"__dnssec",
]
[features]
__dnssec = []
__h3 = [
"dep:h3",
"dep:h3-quinn",
"__quic",
]
__https = [
"dep:h2",
"dep:http",
"__tls",
]
__quic = ["__tls"]
__tls = [
"dep:rustls",
"dep:tokio-rustls",
]
blocklist = ["resolver"]
dnssec-aws-lc-rs = [
"hickory-proto/dnssec-aws-lc-rs",
"hickory-resolver?/dnssec-aws-lc-rs",
"serde/rc",
"__dnssec",
]
dnssec-ring = [
"hickory-proto/dnssec-ring",
"hickory-resolver?/dnssec-ring",
"serde/rc",
"__dnssec",
]
h3-aws-lc-rs = [
"hickory-net/h3-aws-lc-rs",
"hickory-resolver?/h3-aws-lc-rs",
"quic-aws-lc-rs",
"__h3",
]
h3-ring = [
"hickory-net/h3-ring",
"hickory-resolver?/h3-ring",
"quic-ring",
"__h3",
]
https-aws-lc-rs = [
"hickory-net/https-aws-lc-rs",
"hickory-resolver?/https-aws-lc-rs",
"tls-aws-lc-rs",
"__https",
]
https-ring = [
"hickory-net/https-ring",
"hickory-resolver?/https-ring",
"tls-ring",
"__https",
]
metrics = [
"hickory-resolver?/metrics",
"dep:metrics",
]
quic-aws-lc-rs = [
"hickory-net/quic-aws-lc-rs",
"hickory-resolver?/quic-aws-lc-rs",
"tls-aws-lc-rs",
"__quic",
]
quic-ring = [
"hickory-net/quic-ring",
"hickory-resolver?/quic-ring",
"tls-ring",
"__quic",
]
recursor = ["hickory-resolver/recursor"]
resolver = ["dep:hickory-resolver"]
rustls-platform-verifier = ["hickory-resolver?/rustls-platform-verifier"]
sqlite = ["dep:rusqlite"]
testing = []
tls-aws-lc-rs = [
"hickory-net/tls-aws-lc-rs",
"hickory-resolver?/tls-aws-lc-rs",
"__tls",
]
tls-ring = [
"hickory-net/tls-ring",
"hickory-resolver?/tls-ring",
"__tls",
]
toml = [
"dep:toml",
"hickory-resolver?/toml",
]
webpki-roots = ["hickory-resolver?/webpki-roots"]
[lib]
name = "hickory_server"
path = "src/lib.rs"
[dependencies.async-trait]
version = "0.1.43"
[dependencies.bytes]
version = "1"
[dependencies.cfg-if]
version = "1"
[dependencies.data-encoding]
version = "2.2.0"
default-features = false
[dependencies.futures-util]
version = "0.3.5"
features = ["std"]
default-features = false
[dependencies.h2]
version = "0.4.0"
features = ["stream"]
optional = true
[dependencies.h3]
version = "0.0.8"
optional = true
[dependencies.h3-quinn]
version = "0.0.10"
optional = true
[dependencies.hickory-net]
version = "0.26.0"
features = ["tokio"]
default-features = false
[dependencies.hickory-proto]
version = "0.26.0"
features = [
"std",
"serde",
]
default-features = false
[dependencies.hickory-resolver]
version = "0.26.0"
features = [
"serde",
"system-config",
"tokio",
]
optional = true
default-features = false
[dependencies.http]
version = "1.1"
optional = true
[dependencies.ipnet]
version = "2.11.0"
features = [
"serde",
"std",
]
default-features = false
[dependencies.metrics]
version = "0.24.1"
optional = true
[dependencies.prefix-trie]
version = "0.8.4"
[dependencies.rusqlite]
version = "0.39"
features = [
"bundled",
"time",
]
optional = true
[dependencies.rustls]
version = "0.23.23"
features = [
"logging",
"std",
"tls12",
]
optional = true
default-features = false
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.thiserror]
version = "2"
default-features = false
[dependencies.time]
version = "0.3"
[dependencies.tokio]
version = "1.36"
features = [
"macros",
"net",
"sync",
]
[dependencies.tokio-rustls]
version = "0.26"
optional = true
default-features = false
[dependencies.tokio-util]
version = "0.7.9"
[dependencies.toml]
version = "1.0.1"
optional = true
[dependencies.tracing]
version = "0.1.30"
default-features = false
[dev-dependencies.futures-executor]
version = "0.3.5"
features = ["std"]
default-features = false
[dev-dependencies.tokio]
version = "1.36"
features = [
"macros",
"rt",
]
[dev-dependencies.tracing-subscriber]
version = "0.3.10"
features = [
"env-filter",
"fmt",
"std",
]
default-features = false
[lints.clippy]
bool_to_int_with_if = "allow"
default_trait_access = "warn"
manual_let_else = "warn"
or_fun_call = "warn"
single_component_path_imports = "allow"
unimplemented = "warn"
upper_case_acronyms = "allow"
use_self = "warn"
[lints.rust]
non_snake_case = "warn"
non_upper_case_globals = "warn"
rust_2018_idioms = "warn"
unnameable_types = "warn"
unreachable_pub = "warn"
unused_extern_crates = "warn"
unused_import_braces = "warn"
unused_qualifications = "warn"
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = ["cfg(nightly)"]