[package]
name = "trust-dns-proto"
version = "0.22.0"
edition = "2018"
authors = ["Benjamin Fry <benjaminfry@me.com>"]
description = """
Trust-DNS is a safe and secure DNS library. This is the foundational DNS protocol library for all Trust-DNS projects.
"""
documentation = "https://docs.rs/trust-dns-proto"
homepage = "http://www.trust-dns.org/index.html"
repository = "https://github.com/bluejekyll/trust-dns"
readme = "README.md"
keywords = ["DNS", "BIND", "dig", "named", "dnssec"]
categories = ["network-programming"]
license = "MIT/Apache-2.0"
[badges]
codecov = { repository = "bluejekyll/trust-dns", branch = "main", service = "github" }
maintenance = { status = "actively-developed" }
[features]
dns-over-tls = []
dns-over-rustls = ["dns-over-tls", "rustls", "rustls-pemfile", "tokio-rustls", "webpki"]
dns-over-native-tls = ["dns-over-tls", "native-tls", "tokio-native-tls"]
dns-over-openssl = ["dns-over-tls", "openssl", "tokio-openssl"]
dns-over-https-rustls = ["dns-over-https", "dns-over-rustls", "webpki-roots"]
dns-over-https = ["bytes", "dns-over-tls", "h2", "http"]
dns-over-quic = ["quinn", "rustls/quic", "dns-over-rustls", "bytes", "webpki-roots"]
dnssec-openssl = ["dnssec", "openssl"]
dnssec-ring = ["dnssec", "ring"]
dnssec = []
testing = []
tokio-runtime = ["tokio/net", "tokio/rt", "tokio/time", "tokio/rt-multi-thread"]
default = ["tokio-runtime"]
serde-config = ["serde", "url/serde"]
mdns = ["socket2/all"]
wasm-bindgen = ["wasm-bindgen-crate", "js-sys"]
[lib]
name = "trust_dns_proto"
path = "src/lib.rs"
[dependencies]
async-trait = "0.1.43"
backtrace = { version = "0.3.50", optional = true }
bytes = { version = "1", optional = true }
cfg-if = "1"
data-encoding = "2.2.0"
enum-as-inner = "0.5"
futures-channel = { version = "0.3.5", default-features = false, features = ["std"] }
futures-io = { version = "0.3.5", default-features = false, features = ["std"] }
futures-util = { version = "0.3.5", default-features = false, features = ["std"] }
h2 = { version = "0.3.0", features = ["stream"], optional = true }
http = { version = "0.2", optional = true }
idna = "0.2.3"
ipnet = "2.3.0"
js-sys = { version = "0.3.44", optional = true }
lazy_static = "1.2.0"
native-tls = { version = "0.2", optional = true }
openssl = { version = "0.10", features = ["v102", "v110"], optional = true }
quinn = { version = "0.8.2", optional = true }
rand = "0.8"
ring = { version = "0.16", optional = true, features = ["std"] }
rustls = { version = "0.20.0", optional = true }
rustls-pemfile = { version = "1.0.0", optional = true }
serde = { version = "1.0", features = ["derive"], optional = true }
smallvec = "1.6"
socket2 = { version = "0.4.0", optional = true }
thiserror = "1.0.20"
tinyvec = { version = "1.1.1", features = ["alloc"] }
tracing = "0.1.30"
tokio = { version = "1.0", features = ["io-util"], optional = true }
tokio-native-tls = { version = "0.3.0", optional = true }
tokio-openssl = { version = "0.6.0", optional = true }
tokio-rustls = { version = "0.23.0", optional = true, features = ["early-data"] }
url = "2.1.0"
wasm-bindgen-crate = { version = "0.2.58", optional = true, package = "wasm-bindgen" }
webpki = { version = "0.22.0", optional = true }
webpki-roots = { version = "0.22.1", optional = true }
[dev-dependencies]
futures-executor = { version = "0.3.5", default-features = false, features = ["std"] }
openssl = { version = "0.10", features = ["v102", "v110"] }
tokio = { version = "1.0", features = ["rt", "time", "macros"] }
tracing-subscriber = { version = "0.3", 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"]