[package] name = "kapiti" version = "0.0.1" authors = ["Nick Parker "] license-file = "LICENCE.md" edition = "2018" readme = "README-CRATES.md" description = "The Kapiti DNS Server" documentation = "https://kapiti.io" homepage = "https://kapiti.io" repository = "https://sr.ht/~nickbp/kapiti/" [dependencies] anyhow = "1.0" async-channel = "1.5" async-lock = "2.3" async-net = "1.5" # All rust https implementations: # - async-native-tls: native-tls doesn't support ALPN, which seems to be needed for DoH and HTTP/2? "http2 error: protocol error: frame with invalid size", see https://github.com/sfackler/rust-native-tls/issues/49 # - async-rustls: rustls doesn't support IP endpoints, required for DoT, see https://github.com/ctz/hyper-rustls/issues/56, https://github.com/ctz/rustls/issues/184, and https://github.com/briansmith/webpki/issues/54 # So we either get DoH or DoT. For now lets just use rustls and get DoH, hopefully webpki will get fixed someday. async-rustls = "0.2" async-trait = "0.1" async-io = "1.3" bytecheck = "0.6" byteorder = "1.3" bytes = "1.0" chrono = "0.4" flate2 = "1.0" futures-lite = "1.11" git-testament = "0.2" http = "0.2.1" hyper = { version = "0.14", default-features = false, features = ["client", "http1", "http2", "stream", "tcp"] } lazy_static = "1.4" libc = "0.2" nix = "0.22" packed_struct = "0.6" packed_struct_codegen = "0.6" rand = "0.8" redis = { version = "0.21", default-features = false, features = ["script"] } # disable redis async retainer = { git = "https://github.com/nickbp/retainer", rev = "51c4b405" } # TODO replace with upstream once https://github.com/whitfin/retainer/pull/8 is merged rkyv = { version = "0.7.3", features = ["validation"] } rustls = "0.19" rustls-native-certs = "0.5" scopeguard = "1.1" serde = { version = "1.0", features = ["derive"] } sha2 = "0.9" signal-hook = "0.3.8" smol = "1.2" tokio = { version = "1.0.1", default-features = false } # for hyper-smol compatibility shim toml = "0.5" tracing = "0.1" tracing-attributes = "0.1" tracing-futures = "0.2" tracing-subscriber = "0.2" webpki = "0.22" zstd = "0.9" [dev-dependencies] criterion = { version = "0.3", features = ["html_reports"] } # for benchmarks csv = "1.1" # for examples/update_specs futures-delay-queue = "0.5" # for benchmarks proptest = "1.0" # for property tests tempfile = "3" # for benchmarks [[bench]] name = "server" harness = false