#decentralized-identity #dns-records #dns #decentralized #dht #identity #mainline

pkarr

Public-Key Addressable Resource Records (Pkarr); publish and resolve DNS records over Mainline DHT

41 releases (26 stable)

new 3.1.1 Feb 11, 2025
2.3.1 Jan 12, 2025
2.2.1 Dec 17, 2024
2.2.1-alpha.2 Oct 25, 2024
0.3.0 Oct 25, 2023

#384 in Network programming

Download history 2663/week @ 2024-10-22 3166/week @ 2024-10-29 2816/week @ 2024-11-05 3158/week @ 2024-11-12 2804/week @ 2024-11-19 3483/week @ 2024-11-26 3787/week @ 2024-12-03 3826/week @ 2024-12-10 3110/week @ 2024-12-17 1317/week @ 2024-12-24 2466/week @ 2024-12-31 2967/week @ 2025-01-07 3235/week @ 2025-01-14 2587/week @ 2025-01-21 2865/week @ 2025-01-28 2971/week @ 2025-02-04

12,370 downloads per month
Used in 36 crates (10 directly)

MIT license

190KB
4K SLoC

Pkarr

Rust implementation of Pkarr.

Publish and resolve DNS packets over Mainline DHT.

API Docs

Get started

Check the Examples.

Using the Pkarr Client

Blocking API Support

By default, Pkarr client is designed to be asynchronous. However, if you prefer, you can easily obtain a blocking version of all methods by calling Client::as_blocking().

Compatibility with Non-Tokio Runtimes

This client utilizes Tokio, but it remains compatible with other futures-based libraries thanks to the async_compat crate. This ensures seamless integration with various asynchronous runtimes.

WebAssembly support

This version of Pkarr assumes that you are running Wasm in a JavaScript environment, and calling relays over thew web browser Fetch API, so you can't use it in Wasi for example, nor can you use some Wasi bindings to use the DHT directly.


lib.rs:

Feature flags

Exported errors

Dependencies

~3–36MB
~545K SLoC