mirror of
https://github.com/NLnetLabs/domain.git
synced 2026-10-01 06:04:57 +02:00
This PR adds an unstable net::server module that enables the creation of UDP and TCP DNS servers using base transport server, middleware and service building blocks.
126 lines
4.7 KiB
TOML
126 lines
4.7 KiB
TOML
[package]
|
|
name = "domain"
|
|
version = "0.10.0-dev"
|
|
rust-version = "1.67.0"
|
|
edition = "2021"
|
|
authors = ["NLnet Labs <dns-team@nlnetlabs.nl>"]
|
|
description = "A DNS library for Rust."
|
|
documentation = "https://docs.rs/domain"
|
|
homepage = "https://github.com/nlnetlabs/domain/"
|
|
repository = "https://github.com/nlnetlabs/domain/"
|
|
readme = "README.md"
|
|
keywords = ["DNS", "domain"]
|
|
license = "BSD-3-Clause"
|
|
|
|
[lib]
|
|
name = "domain"
|
|
path = "src/lib.rs"
|
|
|
|
[dependencies]
|
|
octseq = { version = "0.5.1", default-features = false }
|
|
pin-project-lite = "0.2"
|
|
time = { version = "0.3.1", default-features = false }
|
|
|
|
rand = { version = "0.8", optional = true }
|
|
arc-swap = { version = "1.7.0", optional = true }
|
|
bytes = { version = "1.0", optional = true, default-features = false }
|
|
chrono = { version = "0.4.35", optional = true, default-features = false } # 0.4.35 deprecates Duration::seconds()
|
|
futures = { version = "0.3.22", optional = true } # Force futures to at least 0.3.22 for minimal-version build
|
|
futures-util = { version = "0.3", optional = true }
|
|
heapless = { version = "0.8", optional = true }
|
|
hex = { version = "0.4", optional = true }
|
|
libc = { version = "0.2.79", default-features = false, optional = true } # 0.2.79 is the first version that has IP_PMTUDISC_OMIT
|
|
moka = { version = "0.12.3", optional = true, features = ["future"] }
|
|
proc-macro2 = { version = "1.0.69", optional = true } # Force proc-macro2 to at least 1.0.69 for minimal-version build
|
|
ring = { version = "0.17", optional = true }
|
|
serde = { version = "1.0.130", optional = true, features = ["derive"] }
|
|
siphasher = { version = "1", optional = true }
|
|
smallvec = { version = "1.3", optional = true }
|
|
tokio = { version = "1.33", optional = true, features = ["io-util", "macros", "net", "time", "sync", "rt-multi-thread" ] }
|
|
tokio-rustls = { version = "0.24", optional = true, features = [] }
|
|
tracing = { version = "0.1.40", optional = true }
|
|
|
|
# For testing in integration tests:
|
|
mock_instant = { version = "0.3.2", optional = true, features = ["sync"] }
|
|
|
|
[target.'cfg(macos)'.dependencies]
|
|
# specifying this overrides minimum-version mio's 0.2.69 libc dependency, which allows the build to work
|
|
libc = { version = "0.2.71", default-features = false, optional = true }
|
|
|
|
[features]
|
|
default = ["std", "rand"]
|
|
bytes = ["dep:bytes", "octseq/bytes"]
|
|
heapless = ["dep:heapless", "octseq/heapless"]
|
|
resolv = ["net", "smallvec", "unstable-client-transport"]
|
|
resolv-sync = ["resolv", "tokio/rt"]
|
|
serde = ["dep:serde", "octseq/serde"]
|
|
sign = ["std"]
|
|
smallvec = ["dep:smallvec", "octseq/smallvec"]
|
|
std = ["bytes?/std", "octseq/std", "time/std"]
|
|
net = ["bytes", "futures-util", "rand", "std", "tokio", "tokio-rustls"]
|
|
tsig = ["bytes", "ring", "smallvec"]
|
|
validate = ["std", "ring"]
|
|
zonefile = ["bytes", "serde", "std"]
|
|
|
|
# Unstable features
|
|
unstable-client-transport = [ "moka", "tracing" ]
|
|
unstable-server-transport = ["arc-swap", "chrono/clock", "hex", "libc", "tracing"]
|
|
|
|
# Test features
|
|
# Commented out as using --all-features to build would cause mock time to also
|
|
# be used. We plan to move the test code under src/ and then use #[cfg(test)]
|
|
# and this will no longer be needed. The cookies test that depends on this is
|
|
# currently also disabled by being renamed to .rpl.not so it is okay to comment
|
|
# this out.
|
|
#mock-time = ["mock_instant"]
|
|
|
|
[dev-dependencies]
|
|
rstest = "0.18.2"
|
|
rustls = { version = "0.21.9" }
|
|
serde_test = "1.0.130"
|
|
serde_json = "1.0.113"
|
|
serde_yaml = "0.9"
|
|
tokio = { version = "1.37", features = ["rt-multi-thread", "io-util", "net", "test-util"] }
|
|
tokio-test = "0.4"
|
|
webpki-roots = { version = "0.25" }
|
|
|
|
rustls-pemfile = { version = "1.0" }
|
|
socket2 = { version = "0.5.5" }
|
|
tokio-tfo = { version = "0.2.0" }
|
|
|
|
# For tracing support in integration tests:
|
|
lazy_static = { version = "1.4.0" } # Force lazy_static to > 1.0.0 for https://github.com/rust-lang-nursery/lazy-static.rs/pull/107
|
|
tracing-subscriber = { version = "0.3.18", features = ["env-filter"] }
|
|
|
|
[package.metadata.docs.rs]
|
|
all-features = true
|
|
rustdoc-args = ["--cfg", "docsrs"]
|
|
|
|
[[example]]
|
|
name = "readzone"
|
|
required-features = ["zonefile"]
|
|
|
|
[[example]]
|
|
name = "download-rust-lang"
|
|
required-features = ["resolv"]
|
|
|
|
[[example]]
|
|
name = "lookup"
|
|
required-features = ["resolv"]
|
|
|
|
[[example]]
|
|
name = "resolv-sync"
|
|
required-features = ["resolv-sync"]
|
|
|
|
[[example]]
|
|
name = "client"
|
|
required-features = ["std", "rand"]
|
|
|
|
[[example]]
|
|
name = "client-transports"
|
|
required-features = ["net", "unstable-client-transport"]
|
|
|
|
[[example]]
|
|
name = "server-transports"
|
|
required-features = ["net", "unstable-server-transport"]
|