[package]
edition = "2021"
name = "pkarr-client"
version = "4.1.0"
authors = ["Nuh <nuh@nuh.dev>"]
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://pkarr.org"
readme = "README.md"
keywords = [
"mainline",
"dht",
"dns",
"decentralized",
"identity",
]
categories = ["network-programming"]
license = "MIT"
repository = "https://git.pkarr.org"
[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:dht",
"__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_client"
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.10.0"
optional = true
[dependencies.document-features]
version = "0.2.10"
[dependencies.dyn-clone]
version = "1.0.18"
optional = true
[dependencies.ed25519-dalek]
version = "3.0.0-pre.1"
features = ["alloc"]
[dependencies.futures-buffered]
version = "0.2.9"
optional = true
[dependencies.futures-lite]
version = "2.6.0"
features = ["std"]
optional = true
default-features = false
[dependencies.genawaiter]
version = "0.99.1"
features = ["futures03"]
optional = true
default-features = false
[dependencies.lru]
version = "0.13.0"
optional = true
default-features = false
[dependencies.ntimestamp]
version = "1.0.0"
features = ["full"]
optional = true
[dependencies.self_cell]
version = "1.1.0"
optional = true
[dependencies.serde]
version = "1.0.217"
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.11"
[dependencies.url]
version = "2.5.4"
optional = true
[dev-dependencies.anyhow]
version = "1.0.95"
[dev-dependencies.postcard]
version = "1.1.1"
features = ["alloc"]
[dev-dependencies.reqwest]
version = "0.12"
features = ["rustls-tls"]
default-features = false
[dev-dependencies.rstest]
version = "0.24.0"
[build-dependencies.cfg_aliases]
version = "0.2.1"
[target.'cfg(not(target_family = "wasm"))'.dependencies.async-compat]
version = "0.2.4"
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.dht]
version = "6.4.0"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.getrandom]
version = "0.3"
default-features = false
[target.'cfg(not(target_family = "wasm"))'.dependencies.heed]
version = "0.21.0"
optional = true
default-features = false
[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.12"
features = ["rustls-tls"]
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.43.0"
optional = true
default-features = false
[target.'cfg(not(target_family = "wasm"))'.dependencies.tracing]
version = "0.1.41"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.webpki]
version = "0.102"
optional = true
package = "rustls-webpki"
[target.'cfg(not(target_family = "wasm"))'.dev-dependencies.axum]
version = "0.8.1"
[target.'cfg(not(target_family = "wasm"))'.dev-dependencies.axum-server]
version = "0.7.1"
features = ["tls-rustls-no-provider"]
[target.'cfg(not(target_family = "wasm"))'.dev-dependencies.clap]
version = "4.5.29"
features = ["derive"]
[target.'cfg(not(target_family = "wasm"))'.dev-dependencies.dht]
version = "6.4.0"
[target.'cfg(not(target_family = "wasm"))'.dev-dependencies.tokio]
version = "1.43.0"
features = [
"macros",
"rt-multi-thread",
]
[target.'cfg(not(target_family = "wasm"))'.dev-dependencies.tokio-rustls]
version = "0.26.1"
default-features = false
[target.'cfg(not(target_family = "wasm"))'.dev-dependencies.tracing-subscriber]
version = "0.3.19"
features = ["env-filter"]
[target.wasm32-unknown-unknown.dependencies.getrandom]
version = "0.3"
features = ["wasm_js"]
default-features = false
[target.wasm32-unknown-unknown.dependencies.log]
version = "0.4.25"
optional = true
[target.wasm32-unknown-unknown.dependencies.reqwest]
version = "0.12"
features = ["rustls-tls"]
optional = true
default-features = false
[target.wasm32-unknown-unknown.dependencies.wasm-bindgen-futures]
version = "0.4.50"
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.100"
features = ["serde-serialize"]
[target.wasm32-unknown-unknown.dev-dependencies.wasm-bindgen-test]
version = "0.3"