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

pkarr

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

47 releases (stable)

new 3.3.3 Feb 20, 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

#381 in Network programming

Download history 3527/week @ 2024-10-30 2530/week @ 2024-11-06 3290/week @ 2024-11-13 2590/week @ 2024-11-20 3746/week @ 2024-11-27 3537/week @ 2024-12-04 4403/week @ 2024-12-11 2378/week @ 2024-12-18 1115/week @ 2024-12-25 2746/week @ 2025-01-01 3294/week @ 2025-01-08 2872/week @ 2025-01-15 2655/week @ 2025-01-22 3112/week @ 2025-01-29 3845/week @ 2025-02-05 3385/week @ 2025-02-12

13,338 downloads per month
Used in 38 crates (12 directly)

MIT license

195KB
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

~2–35MB
~535K SLoC