[package]
name = "dnscrypt"
version = "0.1.1"
edition = "2024"
rust-version = "1.87"
description = "A pure-Rust DNSCrypt v2 client library — sync and async support."
license = "MIT OR Apache-2.0"
repository = "https://codeberg.org/hacer-bark/dnscrypt"
homepage = "https://codeberg.org/hacer-bark/dnscrypt"
documentation = "https://docs.rs/dnscrypt"
keywords = ["dns", "dnscrypt", "privacy", "resolver", "security"]
categories = ["network-programming", "cryptography"]

[features]
default = ["tokio", "zeroize", "reqwest"]
tokio = ["dep:tokio"]
zeroize = ["chacha20/zeroize", "poly1305/zeroize"]
reqwest = ["dep:reqwest"]
max-security = ["tokio", "zeroize"]

[dependencies]
chacha20 = { version = "0.10", features = ["xchacha"] }
ed25519-dalek = "3"
poly1305 = "0.9"
getrandom = "0.4"
reqwest = { version = "0.13", default-features = false, optional = true }
subtle = "2"
x25519-dalek = { version = "3", features = ["static_secrets"] }
zeroize = { version = "1.8", features = ["derive"] }
tokio = { version = "1", features = ["net", "time", "io-util", "rt", "macros"], optional = true }

[lints.rust]
warnings = "deny"
future_incompatible = "deny"
unused = "deny"
missing_docs = "deny"
missing_debug_implementations = "deny"
unreachable_pub = "deny"
unsafe_code = "deny"

[lints.clippy]
all = "deny"
pedantic = "deny"
nursery = "deny"
cargo = "deny"
unwrap_used = "deny"
expect_used = "deny"
panic = "deny"
todo = "deny"
unimplemented = "deny"
