[package]
name = "hickory-client"

# A short blurb about the package. This is not rendered in any format when
# uploaded to crates.io (aka this is not markdown)
description = """
Hickory DNS is a safe and secure DNS library. This is the Client library with DNSSEC support.
 DNSSEC with NSEC validation for negative records, is complete. The client supports
 dynamic DNS with SIG0 authenticated requests, implementing easy to use high level
 functions. Hickory DNS is based on the Tokio and Futures libraries, which means
 it should be easily integrated into other software that also use those
 libraries.
"""

# These URLs point to more information about the repository
documentation = "https://docs.rs/hickory-client"

# This points to a file in the repository (relative to this Cargo.toml). The
# contents of this file are stored and indexed in the registry.
readme = "README.md"

version.workspace = true
authors.workspace = true
edition.workspace = true
rust-version.workspace = true
homepage.workspace = true
repository.workspace = true
keywords.workspace = true
categories.workspace = true
license.workspace = true

[badges]
#github-actions = { repository = "bluejekyll/hickory", branch = "main", workflow = "test" }
codecov = { repository = "hickory-dns/hickory-dns", branch = "main", service = "github" }
maintenance = { status = "actively-developed" }

[features]
backtrace = ["hickory-proto/backtrace"]

dns-over-https-openssl = ["dns-over-https", "dns-over-openssl"]
dns-over-https-rustls = [
    "dns-over-https",
    "dns-over-rustls",
    "rustls",
    "hickory-proto/dns-over-https-rustls",
]
dns-over-https = ["hickory-proto/dns-over-https"]

dns-over-quic = ["dns-over-rustls", "hickory-proto/dns-over-quic"]

dns-over-native-tls = ["dns-over-tls", "hickory-proto/dns-over-native-tls"]
dns-over-openssl = ["dns-over-tls", "dnssec-openssl"]
dns-over-rustls = [
    "dns-over-tls",
    "dnssec-ring",
    "hickory-proto/dns-over-rustls",
]
dns-over-tls = []

webpki-roots = ["hickory-proto/webpki-roots"]
native-certs = ["hickory-proto/native-certs"]

dnssec-openssl = ["dnssec", "hickory-proto/dnssec-openssl"]
dnssec-ring = ["dnssec", "hickory-proto/dnssec-ring"]
dnssec = ["hickory-proto/dnssec"]

serde-config = ["serde", "hickory-proto/serde-config"]

# enables experimental the mDNS (multicast) feature
mdns = ["hickory-proto/mdns"]

[lib]
name = "hickory_client"
path = "src/lib.rs"

[dependencies]
cfg-if.workspace = true
data-encoding.workspace = true
futures-channel = { workspace = true, default-features = false, features = [
    "std",
] }
futures-util = { workspace = true, default-features = false, features = [
    "std",
] }
once_cell.workspace = true
radix_trie.workspace = true
rand.workspace = true
rustls = { workspace = true, optional = true }
serde = { workspace = true, features = ["derive"], optional = true }
thiserror.workspace = true
tracing.workspace = true
tokio = { workspace = true, features = ["rt", "net"] }
hickory-proto = { workspace = true, features = [
    "text-parsing",
    "tokio-runtime",
] }

[dev-dependencies]
futures = { workspace = true, default-features = false, features = [
    "std",
    "executor",
] }
openssl = { workspace = true, features = ["v102", "v110"], optional = false }
tokio = { workspace = true, features = ["rt", "macros"] }
tracing-subscriber = { workspace = true, features = [
    "std",
    "fmt",
    "env-filter",
] }
webpki-roots = { workspace = true }

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