Expand description
§Pkarr
Rust implementation of Pkarr for publishing and resolving DNS packets over Mainline DHT.
§Documentation
§Features
§Runtime Support
- Asynchronous by Default: Built on async/await for optimal performance
- Runtime Agnostic: Compatible with non-Tokio runtimes via
async_compat
§WebAssembly
- Browser Environment: Designed for JavaScript/Wasm integration
- Relay Communication: Uses browser’s Fetch API for relay calls
- Limitations:
- Not compatible with WASI
- Cannot use WASI bindings for direct DHT access
§Feature flags
-
dht(enabled by default) — Enable the Client with mainline support. -
lmdb-cache— Use theLmdbCacheimplementation. -
endpoints— Enables endpoints spec.Only available if the
clientmodule is enabled. -
tls— Enables tls spec.Only available if the
clientmodule is enabled. -
reqwest-resolve— Use reqwest::dns::Resolve trait implementation for Client.Only available if the
clientmodule is enabled. -
reqwest-builder— Create a reqwest::ClientBuilder from Client.Only available if the
clientmodule is enabled. -
full-client(enabled by default) — Use all features -
extra— Extra features that might benefit most but not all developers building apps using Pkarr.Only available if the
clientmodule is enabled. -
full— Use all features including thefull-clientandextrafeatures. -
__client(enabled by default) — Enable client dependencies.Does not enable anything on its own you need to enable either
dhtand/orrelaysto enable the Client.Except in WASM where you have to enable
relays, whiledhtdoes not do anything.
Re-exports§
pub use mainline;pub use simple_dns as dns;pub use types::*;
Modules§
- dht
- Mainline DHT integration.
- errors
- Exported errors
- extra
- Extra features that might benefit most but not all developers building apps using Pkarr.
- relay_
client - Single-relay HTTP client.
- types
- Protocol data types.
Structs§
- Client
- Pkarr client for publishing and resolving
SignedPackets over the configured networks. - Client
Builder - A builder for constructing a
Clientwith custom configuration. - InMemory
Cache - A thread-safe wrapper around
lru::LruCache. - Timestamp
- Strictly monotonic timestamp since SystemTime::UNIX_EPOCH in microseconds.
Constants§
- DEFAULT_
CACHE_ SIZE - Default cache size: 1000
- DEFAULT_
MAXIMUM_ TTL - Default maximum TTL: 24 hours.
- DEFAULT_
MINIMUM_ TTL - Default minimum TTL: 5 minutes.
- DEFAULT_
RELAYS - Default Relays.
- DEFAULT_
REQUEST_ TIMEOUT - Default request timeout for DHT and relay requests.
- PKARR_
DHT_ STORED_ NODES - Relay response header carrying the number of DHT nodes that acknowledged storing a published packet.
- PKARR_
INVALID_ SIGNED_ PACKET_ SEQ - Relay response header carrying the mutable item sequence number when the DHT has a newer mutable item that is not a valid signed packet for a key.
Traits§
- Cache
- A cache for
SignedPackets used by a Pkarrcrate::Client.
Type Aliases§
- Cache
Key - The SHA-1 hash of the
crate::PublicKeyused as the key inCache.