Cargo Features

[dependencies]
pkarr = { version = "3.3.3", default-features = false, features = ["keys", "signed_packet", "dht", "relays", "lmdb-cache", "endpoints", "tls", "reqwest-resolve", "reqwest-builder", "full-client", "extra", "full"] }
keys signed_packet?

Basic types

signed_packet __client? = keys

Enables bytes, pubky-timestamp, self_cell, and simple-dns

simple-dns:

feat: signed_packet dependencies

dht full-client = __client

Clients
Enable the [Client] with [mainline] support.

Enables mainline

relays full-client = __client

Enables [Client] with Relays.

Enables futures-buffered, reqwest, and url

lmdb-cache extra? = __client

Extra Use LmdbCache implementation. Only available if the client module is enabled.

Enables byteorder, heed, and page_size

endpoints extra? reqwest-resolve? tls? = __client

Enables endpoints spec.

Only available if the client module is enabled.

Enables genawaiter

feat: endpoints dependencies

Affects builder::DEFAULT_MAX_RECURSION_DEPTH, extra::endpoints

tls extra? reqwest-builder? = endpoints

Enables tls spec.

Only available if the client module is enabled.

Enables rustls and rustls-webpki, pkcs8 of ed25519-dalek

Affects extra::tls

reqwest-resolve extra? reqwest-builder? = endpoints

Use reqwest::dns::Resolve trait implementation for [Client].

Only available if the client module is enabled.

Enables reqwest

Affects extra::reqwest

reqwest-builder extra? = reqwest-resolve, tls

Create a reqwest::ClientBuilder from [Client].

Only available if the client module is enabled.

full-client default full? = dht, relays

Combinations
Use all features

extra full? = endpoints, lmdb-cache, reqwest-builder, reqwest-resolve, tls

Extra features that might benefit most but not all developers building apps using Pkarr.

Only available if the client module is enabled.

full = extra, full-client

Use all features including the full-client and extra features.

default = full-client

The full-client feature is set by default whenever pkarr is added without default-features = false somewhere in the dependency tree.

__client dht? endpoints? lmdb-cache? relays? = signed_packet

Enable client dependencies.

Does not enable anything on its own you need to enable either dht and/or relays to enable the [Client].

Except in WASM where you have to enable relays, while dht does not do anything.

Enables sha1_smol, tokio, tracing, and wasm-bindgen-futures

sha1_smol:

feat: relay dependencies

and async-compat, dyn-clone, futures-lite, log, and lru

futures-lite:

feat: client dependencies

Affects pkarr::DEFAULT_CACHE_SIZE