Files
NLnetLabs-domain/Cargo.toml
T
Ximon EighteenandGitHub 0bd1a68fe0 Add the net::server module. (#274)
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.
2024-04-11 16:41:40 +02:00

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"]