[package]
edition = "2021"
rust-version = "1.87.0"
name = "domain"
version = "0.12.0"
authors = ["NLnet Labs <dns-team@nlnetlabs.nl>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A DNS library for Rust."
homepage = "https://nlnetlabs.nl/projects/domain/"
documentation = "https://docs.rs/domain"
readme = "README.md"
keywords = [
"DNS",
"domain",
]
license = "BSD-3-Clause"
repository = "https://github.com/nlnetlabs/domain/"
resolver = "3"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
alloc = ["jiff/alloc"]
arbitrary = ["dep:arbitrary"]
bumpalo = [
"dep:bumpalo",
"std",
]
bytes = [
"dep:bytes",
"octseq/bytes",
]
chrono = ["dep:chrono"]
default = [
"std",
"rand",
]
heapless = [
"dep:heapless",
"octseq/heapless",
]
net = [
"bytes",
"futures-util",
"rand",
"std",
"tokio",
]
openssl = [
"dep:openssl",
"unstable-crypto-backend",
]
rand = ["dep:rand"]
resolv = [
"net",
"smallvec",
"unstable-client-transport",
]
resolv-sync = [
"resolv",
"tokio/rt",
]
ring = [
"dep:ring",
"unstable-crypto-backend",
]
serde = [
"std",
"dep:serde",
"octseq/serde",
]
smallvec = [
"dep:smallvec",
"octseq/smallvec",
]
std = [
"alloc",
"dep:hashbrown",
"bumpalo?/std",
"bytes?/std",
"octseq/std",
"jiff/std",
]
tracing = [
"dep:log",
"dep:tracing",
]
tsig = [
"bytes",
"constant_time_eq",
"ring",
"smallvec",
]
unstable-client-cache = [
"unstable-client-transport",
"moka",
]
unstable-client-transport = [
"net",
"tracing",
]
unstable-crypto = [
"bytes",
"std",
]
unstable-crypto-backend = ["unstable-crypto"]
unstable-crypto-sign = [
"dep:secrecy",
"unstable-crypto",
]
unstable-new = []
unstable-server-transport = [
"arc-swap",
"libc",
"net",
"siphasher",
"tracing",
]
unstable-sign = [
"dep:smallvec",
"dep:serde",
"tracing",
"unstable-crypto-sign",
]
unstable-stelline = [
"tokio/test-util",
"tracing",
"tracing-subscriber",
"tsig",
"unstable-client-transport",
"unstable-server-transport",
"zonefile",
]
unstable-validator = [
"zonefile",
"unstable-client-transport",
"unstable-crypto",
"moka",
]
unstable-xfr = ["net"]
unstable-zonetree = [
"futures-util",
"parking_lot",
"rustversion",
"serde",
"std",
"tokio",
"tracing",
"unstable-xfr",
"zonefile",
]
zonefile = [
"bytes",
"serde",
"std",
]
[lib]
name = "domain"
path = "src/lib.rs"
[[example]]
name = "client"
path = "examples/client.rs"
required-features = [
"std",
"rand",
]
[[example]]
name = "client-cache-transport"
path = "examples/client-cache-transport.rs"
required-features = [
"net",
"unstable-client-cache",
]
[[example]]
name = "client-transports"
path = "examples/client-transports.rs"
required-features = [
"net",
"tokio-rustls",
"unstable-client-transport",
]
[[example]]
name = "download-rust-lang"
path = "examples/download-rust-lang.rs"
required-features = ["resolv"]
[[example]]
name = "ixfr-client"
path = "examples/ixfr-client.rs"
required-features = [
"zonefile",
"net",
"unstable-client-transport",
"unstable-zonetree",
]
[[example]]
name = "keyset"
path = "examples/keyset.rs"
required-features = [
"serde",
"unstable-sign",
"ring",
]
[[example]]
name = "lookup"
path = "examples/lookup.rs"
required-features = ["resolv"]
[[example]]
name = "query-routing"
path = "examples/query-routing.rs"
required-features = [
"net",
"unstable-client-transport",
"unstable-server-transport",
"tracing-subscriber",
]
[[example]]
name = "query-zone"
path = "examples/query-zone.rs"
required-features = [
"tracing-subscriber",
"unstable-zonetree",
"zonefile",
]
[[example]]
name = "read-zone"
path = "examples/read-zone.rs"
required-features = ["zonefile"]
[[example]]
name = "resolv-sync"
path = "examples/resolv-sync.rs"
required-features = ["resolv-sync"]
[[example]]
name = "serve-zone"
path = "examples/serve-zone.rs"
required-features = [
"zonefile",
"net",
"tokio-stream",
"tracing-subscriber",
"tsig",
"unstable-client-transport",
"unstable-server-transport",
"unstable-zonetree",
]
[[example]]
name = "server-transports"
path = "examples/server-transports.rs"
required-features = [
"net",
"tokio-stream",
"tracing-subscriber",
"unstable-client-transport",
"unstable-server-transport",
]
[[test]]
name = "interop"
path = "tests/interop.rs"
[[test]]
name = "net-client"
path = "tests/net-client.rs"
[[test]]
name = "net-client-cache"
path = "tests/net-client-cache.rs"
[dependencies.arbitrary]
version = "1.4.1"
features = ["derive"]
optional = true
[dependencies.arc-swap]
version = "1.7.0"
optional = true
[dependencies.bumpalo]
version = "3.12"
optional = true
[dependencies.bytes]
version = "1.2"
optional = true
default-features = false
[dependencies.chrono]
version = "0.4.35"
optional = true
default-features = false
[dependencies.constant_time_eq]
version = "0.4.2"
optional = true
[dependencies.domain-macros]
version = "=0.12.0"
[dependencies.futures-util]
version = "0.3"
optional = true
[dependencies.hashbrown]
version = "0.17.0"
features = [
"allocator-api2",
"inline-more",
]
optional = true
default-features = false
[dependencies.heapless]
version = "0.9.2"
optional = true
[dependencies.jiff]
version = "0.2.1"
default-features = false
[dependencies.libc]
version = "0.2.153"
optional = true
default-features = false
[dependencies.log]
version = "0.4.22"
optional = true
[dependencies.moka]
version = "0.12.3"
features = ["future"]
optional = true
[dependencies.octseq]
version = "0.6.0"
default-features = false
[dependencies.openssl]
version = "0.10.72"
optional = true
[dependencies.parking_lot]
version = "0.12"
optional = true
[dependencies.proc-macro2]
version = "1.0.69"
optional = true
[dependencies.rand]
version = "0.10.1"
optional = true
[dependencies.ring]
version = "0.17.2"
optional = true
[dependencies.rustversion]
version = "1"
optional = true
[dependencies.secrecy]
version = "0.10"
optional = true
[dependencies.serde]
version = "1.0.130"
features = ["derive"]
optional = true
[dependencies.siphasher]
version = "1"
optional = true
[dependencies.smallvec]
version = "1.3"
optional = true
[dependencies.tokio]
version = "1.33"
features = [
"io-util",
"macros",
"net",
"time",
"sync",
"rt-multi-thread",
]
optional = true
[dependencies.tokio-rustls]
version = "0.26"
optional = true
default-features = false
[dependencies.tokio-stream]
version = "0.1.17"
optional = true
[dependencies.tracing]
version = "0.1.40"
features = ["log"]
optional = true
[dependencies.tracing-subscriber]
version = "0.3.18"
features = ["env-filter"]
optional = true
[dev-dependencies.itertools]
version = "0.14.0"
[dev-dependencies.lazy_static]
version = "1.4.0"
[dev-dependencies.mock_instant]
version = "0.6.0"
[dev-dependencies.pretty_assertions]
version = "1.4.1"
[dev-dependencies.rstest]
version = "0.26.1"
[dev-dependencies.rustls-pemfile]
version = "2.1.2"
[dev-dependencies.serde_json]
version = "1.0.113"
[dev-dependencies.serde_test]
version = "1.0.130"
[dev-dependencies.socket2]
version = "0.6.3"
[dev-dependencies.tokio]
version = "1.37"
features = [
"rt-multi-thread",
"io-util",
"net",
"test-util",
]
[dev-dependencies.tokio-rustls]
version = "0.26"
features = [
"ring",
"logging",
"tls12",
]
default-features = false
[dev-dependencies.tokio-test]
version = "0.4"
[dev-dependencies.tokio-tfo]
version = "0.4.3"
[dev-dependencies.webpki-roots]
version = "1.0.7"
[dev-dependencies.yaml_serde]
version = "0.10.3"