[package]
edition = "2021"
rust-version = "1.85"
name = "pkarr"
version = "5.0.3"
authors = [
"Nuh <nuh@nuh.dev>",
"SeverinAlexB <severin@synonym.to>",
"SHAcollision <shacollision@synonym.to>",
"dzdidi <denys@synonym.to>",
]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Public-Key Addressable Resource Records (Pkarr); publish and resolve DNS records over Mainline DHT"
homepage = "https://pkdns.net"
readme = "README.md"
keywords = [
"mainline",
"dht",
"dns",
"decentralized",
"identity",
]
categories = ["network-programming"]
license = "MIT"
repository = "https://github.com/pubky/pkarr"
[package.metadata.docs.rs]
all-features = true
[features]
__client = [
"signed_packet",
"dep:dyn-clone",
"dep:lru",
"dep:sha1_smol",
"dep:futures-lite",
"dep:async-compat",
"dep:tokio",
"dep:log",
"dep:tracing",
"dep:wasm-bindgen-futures",
]
default = ["full-client"]
dht = [
"dep:mainline",
"__client",
]
endpoints = [
"__client",
"dep:genawaiter",
]
extra = [
"endpoints",
"lmdb-cache",
"reqwest-resolve",
"tls",
"reqwest-builder",
]
full = [
"full-client",
"extra",
]
full-client = [
"dht",
"relays",
]
keys = []
lmdb-cache = [
"__client",
"dep:heed",
"dep:byteorder",
"dep:page_size",
]
relays = [
"dep:url",
"dep:reqwest",
"dep:futures-buffered",
"__client",
]
reqwest-builder = [
"tls",
"reqwest-resolve",
]
reqwest-resolve = [
"endpoints",
"dep:reqwest",
]
signed_packet = [
"keys",
"dep:simple-dns",
"dep:ntimestamp",
"dep:bytes",
"dep:self_cell",
]
tls = [
"endpoints",
"ed25519-dalek/pkcs8",
"dep:webpki",
"dep:rustls",
]
[lib]
name = "pkarr"
path = "src/lib.rs"
[[example]]
name = "http-get"
path = "examples/http-get.rs"
required-features = ["reqwest-builder"]
[[example]]
name = "http-serve"
path = "examples/http-serve.rs"
required-features = ["tls"]
[[example]]
name = "publish"
path = "examples/publish.rs"
[[example]]
name = "resolve"
path = "examples/resolve.rs"
[dependencies.base32]
version = "0.5.1"
[dependencies.bytes]
version = "1.11.1"
optional = true
[dependencies.document-features]
version = "0.2.12"
[dependencies.dyn-clone]
version = "1.0.20"
optional = true
[dependencies.ed25519-dalek]
version = "3.0.0-pre.1"
features = ["alloc"]
[dependencies.futures-buffered]
version = "0.2.12"
optional = true
[dependencies.futures-lite]
version = "2.6.1"
features = ["std"]
optional = true
default-features = false
[dependencies.genawaiter]
version = "0.99.1"
features = ["futures03"]
optional = true
default-features = false
[dependencies.lru]
version = "0.16.3"
optional = true
default-features = false
[dependencies.ntimestamp]
version = "1.0.0"
features = ["full"]
optional = true
[dependencies.self_cell]
version = "1.2.2"
optional = true
[dependencies.serde]
version = "1.0.228"
features = ["derive"]
[dependencies.sha1_smol]
version = "1.0.1"
optional = true
[dependencies.simple-dns]
version = "0.9.3"
optional = true
[dependencies.thiserror]
version = "2.0.18"
[dependencies.url]
version = "2.5.8"
optional = true
[dev-dependencies.anyhow]
version = "1.0.101"
[dev-dependencies.postcard]
version = "1.1.3"
features = ["alloc"]
[dev-dependencies.reqwest]
version = "0.13"
features = ["rustls"]
default-features = false
[dev-dependencies.rstest]
version = "0.26.1"
[build-dependencies.cfg_aliases]
version = "0.2.1"
[target.'cfg(not(target_family = "wasm"))'.dependencies.async-compat]
version = "0.2.5"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.byteorder]
version = "1.5.0"
optional = true
default-features = false
[target.'cfg(not(target_family = "wasm"))'.dependencies.getrandom]
version = "0.4.1"
default-features = false
[target.'cfg(not(target_family = "wasm"))'.dependencies.heed]
version = "0.22.0"
optional = true
default-features = false
[target.'cfg(not(target_family = "wasm"))'.dependencies.mainline]
version = "6.1.1"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.page_size]
version = "0.6.0"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.reqwest]
version = "0.13"
features = ["rustls"]
optional = true
default-features = false
[target.'cfg(not(target_family = "wasm"))'.dependencies.rustls]
version = "0.23"
features = [
"ring",
"std",
]
optional = true
default-features = false
[target.'cfg(not(target_family = "wasm"))'.dependencies.tokio]
version = "1.49.0"
optional = true
default-features = false
[target.'cfg(not(target_family = "wasm"))'.dependencies.tracing]
version = "0.1.44"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.webpki]
version = "0.103"
optional = true
package = "rustls-webpki"
[target.'cfg(not(target_family = "wasm"))'.dev-dependencies.axum]
version = "0.8.8"
[target.'cfg(not(target_family = "wasm"))'.dev-dependencies.axum-server]
version = "0.8"
features = ["tls-rustls-no-provider"]
[target.'cfg(not(target_family = "wasm"))'.dev-dependencies.clap]
version = "4.5.57"
features = ["derive"]
[target.'cfg(not(target_family = "wasm"))'.dev-dependencies.mainline]
version = "6.1.1"
[target.'cfg(not(target_family = "wasm"))'.dev-dependencies.tempfile]
version = "3.24.0"
[target.'cfg(not(target_family = "wasm"))'.dev-dependencies.tokio]
version = "1.49.0"
features = [
"macros",
"rt-multi-thread",
]
[target.'cfg(not(target_family = "wasm"))'.dev-dependencies.tokio-rustls]
version = "0.26.4"
default-features = false
[target.'cfg(not(target_family = "wasm"))'.dev-dependencies.tracing-subscriber]
version = "0.3.22"
features = ["env-filter"]
[target.wasm32-unknown-unknown.dependencies.getrandom]
version = "0.4.1"
features = ["wasm_js"]
default-features = false
[target.wasm32-unknown-unknown.dependencies.log]
version = "0.4.29"
optional = true
[target.wasm32-unknown-unknown.dependencies.reqwest]
version = "0.13"
features = ["rustls"]
optional = true
default-features = false
[target.wasm32-unknown-unknown.dependencies.wasm-bindgen-futures]
version = "0.4.58"
optional = true
[target.wasm32-unknown-unknown.dev-dependencies.console_log]
version = "1.0.0"
features = ["color"]
[target.wasm32-unknown-unknown.dev-dependencies.wasm-bindgen]
version = "0.2.108"
features = ["serde-serialize"]
[target.wasm32-unknown-unknown.dev-dependencies.wasm-bindgen-test]
version = "0.3.58"