[package]
name = "trust-dns-resolver"
description = """
Trust-DNS is a safe and secure DNS library. This Resolver library uses the Client library to perform all DNS queries. The Resolver is intended to be a high-level library for any DNS record resolution see Resolver and AsyncResolver for supported resolution types. The Client can be used for other queries.
"""
documentation = "https://docs.rs/trust-dns-resolver"
readme = "README.md"
version.workspace = true
authors.workspace = true
edition.workspace = true
rust-version.workspace = true
homepage.workspace = true
repository.workspace = true
keywords.workspace = true
categories.workspace = true
license.workspace = true
[badges]
codecov = { repository = "bluejekyll/trust-dns", branch = "main", service = "github" }
maintenance = { status = "actively-developed" }
[features]
default = ["system-config", "tokio-runtime"]
dns-over-native-tls = ["dns-over-tls", "tokio-native-tls", "trust-dns-proto/dns-over-native-tls"]
dns-over-openssl = ["dns-over-tls", "trust-dns-proto/dns-over-openssl", "tokio-openssl"]
dns-over-rustls = ["dns-over-tls", "rustls", "tokio-rustls", "trust-dns-proto/dns-over-rustls", "webpki-roots"]
dns-over-tls = ["tokio-runtime"]
dns-over-https-rustls = ["trust-dns-proto/dns-over-https-rustls", "dns-over-rustls", "dns-over-https"]
dns-over-https = ["trust-dns-proto/dns-over-https"]
dns-over-quic = ["rustls/quic", "dns-over-rustls", "trust-dns-proto/dns-over-quic"]
dnssec-openssl = ["dnssec", "trust-dns-proto/dnssec-openssl"]
dnssec-ring = ["dnssec", "trust-dns-proto/dnssec-ring"]
dnssec = []
serde-config = ["serde", "trust-dns-proto/serde-config"]
system-config = ["ipconfig", "resolv-conf"]
testing = []
tokio-runtime = ["tokio/rt", "trust-dns-proto/tokio-runtime"]
[lib]
name = "trust_dns_resolver"
path = "src/lib.rs"
[dependencies]
cfg-if.workspace = true
futures-util = { workspace = true, default-features = false, features = ["std"] }
lru-cache.workspace = true
once_cell.workspace = true
parking_lot.workspace = true
rand.workspace = true
resolv-conf = { workspace = true, optional = true, features = ["system"] }
rustls = { workspace = true, optional = true }
serde = { workspace = true, features = ["derive"], optional = true }
smallvec.workspace = true
thiserror.workspace = true
tracing.workspace = true
tokio = { workspace = true, optional = true }
tokio-native-tls = { workspace = true, optional = true }
tokio-openssl = { workspace = true, optional = true }
tokio-rustls = { workspace = true, optional = true }
trust-dns-proto = { workspace = true, default-features = false }
webpki-roots = { workspace = true, optional = true }
[target.'cfg(windows)'.dependencies]
ipconfig = { workspace = true, optional = true }
[dev-dependencies]
futures-executor = { workspace = true, default-features = false, features = ["std"] }
tokio = { workspace = true, features = ["macros", "test-util"] }
tracing-subscriber = { workspace = true, features = ["std", "fmt", "env-filter"] }
[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"]