Files
NLnetLabs-domain/Cargo.toml
T
Martin HoffmannandGitHub cd88889557 Redesign zone file parsing. (#142)
This commit completely redesigns zone file parsing. The primary change is to
convert the scanner into a trait in order to allow multiple zone parser
implementations for different sources and purposes. A number of changes had
to be made in order to make this possible.

The commit also contains an initial implementation of a scanner that modifies
data in-place and can thus returned parsed data with only a minimal amount
of additional allocations. While working, this scanner is more a
proof-of-concept at this point to ensure that the API design is sound.

This commit is based on ideas and code proposed by @not-my-profile in #106.

This commit increases the minimal supported Rust version to 1.59.0.
2022-11-07 15:11:36 +01:00

80 lines
2.5 KiB
TOML

[package]
name = "domain"
version = "0.8.0-dev"
rust-version = "1.59.0"
edition = "2021"
authors = ["Martin Hoffmann <martin@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]
time = "0.3.1"
rand = { version = "0.8", optional = true }
bytes = { version = "1.0", optional = true }
chrono = { version = "0.4.6", optional = true, default-features = false }
futures = { version = "0.3", optional = true }
heapless = { version = "0.7", optional = true }
#openssl = { version = "0.10", optional = true }
ring = { version = "0.16.14", optional = true }
serde = { version = "1.0.130", optional = true, features = ["derive"] }
smallvec = { version = "1.3", optional = true }
tokio = { version = "1.0", optional = true, features = ["io-util", "macros", "net", "time"] }
[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", "random"]
interop = ["bytes", "ring"]
master = ["std", "bytes", "chrono"]
random = ["rand"]
resolv = ["bytes", "futures", "smallvec", "std", "tokio", "libc", "random"]
resolv-sync = ["resolv", "tokio/rt"]
sign = ["std"]
std = []
tsig = ["bytes", "ring", "smallvec"]
validate = ["std", "ring"]
zonefile = ["bytes", "std"]
# This feature should include all features that the CI should include for a
# test run. Which is everything except interop.
ci-test = ["resolv", "resolv-sync", "sign", "std", "serde", "tsig", "validate", "zonefile"]
[dev-dependencies]
serde_test = "1.0.130"
serde_yaml = "0.9"
tokio-native-tls = "0.3"
tokio = { version = "1", features = ["rt-multi-thread", "io-util", "net"] }
[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"]