1#![doc = include_str!("../README.md")]
2#![doc = document_features::document_features!()]
4#![deny(missing_docs)]
7#![deny(rustdoc::broken_intra_doc_links)]
8#![cfg_attr(not(test), deny(clippy::unwrap_used))]
9
10#[cfg(client)]
12mod client;
13#[cfg(client)]
14pub mod extra;
15#[cfg(feature = "keys")]
16mod keys;
17#[cfg(feature = "signed_packet")]
18mod signed_packet;
19
20pub const DEFAULT_MINIMUM_TTL: u32 = 300;
22pub const DEFAULT_MAXIMUM_TTL: u32 = 24 * 60 * 60;
24pub const DEFAULT_RELAYS: [&str; 2] = ["https://pkarr.pubky.app", "https://pkarr.pubky.org"];
26#[cfg(feature = "__client")]
27pub const DEFAULT_CACHE_SIZE: usize = 1000;
29
30#[cfg(all(client, not(wasm_browser)))]
32pub use client::blocking::ClientBlocking;
33#[cfg(client)]
34pub use client::cache::{Cache, CacheKey, InMemoryCache};
35#[cfg(client)]
36pub use client::{builder::ClientBuilder, Client};
37#[cfg(feature = "keys")]
38pub use keys::{Keypair, PublicKey};
39#[cfg(feature = "signed_packet")]
40pub use signed_packet::{SignedPacket, SignedPacketBuilder};
41
42#[cfg(dht)]
44pub use mainline;
45#[cfg(feature = "signed_packet")]
46pub use ntimestamp::Timestamp;
47#[cfg(feature = "signed_packet")]
48pub use simple_dns as dns;
49
50pub mod errors {
51 #[cfg(feature = "keys")]
54 pub use super::keys::PublicKeyError;
55
56 #[cfg(feature = "signed_packet")]
57 pub use super::signed_packet::{SignedPacketBuildError, SignedPacketVerifyError};
58
59 #[cfg(client)]
60 pub use super::client::{BuildError, ConcurrencyError, PublishError, QueryError};
61}