#![forbid(unsafe_code)]
pub mod endpoint;
pub mod error;
pub mod identity;
pub mod inbox;
pub mod interfaces;
pub mod ipfs_publish;
#[cfg(not(target_arch = "wasm32"))]
pub mod gossip;
#[cfg(not(target_arch = "wasm32"))]
pub mod iroh;
#[cfg(not(target_arch = "wasm32"))]
pub mod outbox;
#[cfg(not(target_arch = "wasm32"))]
pub mod resolve;
pub mod service;
pub mod topic;
pub mod transport;
pub(crate) mod ttl_queue;
#[cfg(all(not(target_arch = "wasm32"), feature = "kubo"))]
pub mod kubo;
pub mod pinning;
pub use did_ma::{
Did, Document, EncryptionKey, Headers, MaError, Message, Proof, ReplayGuard, SigningKey,
VerificationMethod, DEFAULT_MAX_CLOCK_SKEW_SECS, DEFAULT_MESSAGE_TTL_SECS,
DEFAULT_REPLAY_WINDOW_SECS,
};
pub use error::{Error, Result};
pub use service::{
Service, BROADCAST_PROTOCOL, BROADCAST_TOPIC, CONTENT_TYPE_BROADCAST,
CONTENT_TYPE_DOC, CONTENT_TYPE_IPFS_REQUEST, CONTENT_TYPE_MESSAGE, INBOX_PROTOCOL, IPFS_PROTOCOL,
};
pub use inbox::Inbox;
pub use topic::{Topic, TopicId, topic_id};
pub use endpoint::{MaEndpoint, DEFAULT_DELIVERY_PROTOCOL_ID};
#[cfg(not(target_arch = "wasm32"))]
pub use iroh::channel::Channel;
#[cfg(not(target_arch = "wasm32"))]
pub use iroh::IrohEndpoint;
#[cfg(not(target_arch = "wasm32"))]
pub use outbox::Outbox;
#[cfg(not(target_arch = "wasm32"))]
pub use ::iroh::{Endpoint, EndpointAddr, EndpointId, RelayUrl, SecretKey};
#[cfg(not(target_arch = "wasm32"))]
pub use ::iroh::endpoint::{Connection, RecvStream, SendStream, presets};
#[cfg(not(target_arch = "wasm32"))]
pub use ::iroh::protocol::{AcceptError, ProtocolHandler, Router};
#[cfg(not(target_arch = "wasm32"))]
pub use gossip::{broadcast_topic_id, gossip_send, gossip_send_text, join_broadcast_channel, join_gossip_topic, topic_id_for};
pub use transport::{
endpoint_id_from_transport, endpoint_id_from_transport_value, normalize_endpoint_id,
protocol_from_transport, resolve_endpoint_for_protocol, resolve_inbox_endpoint_id,
transport_string,
};
pub use identity::{generate_secret_key_file, load_secret_key_bytes, socket_addr_to_multiaddr};
#[cfg(not(target_arch = "wasm32"))]
pub use resolve::{DidResolver, GatewayResolver};
pub use interfaces::{DidPublisher, IpfsPublisher};
#[cfg(all(not(target_arch = "wasm32"), feature = "kubo"))]
pub use ipfs_publish::KuboDidPublisher;
#[cfg(all(not(target_arch = "wasm32"), feature = "kubo"))]
pub use ipfs_publish::{handle_ipfs_publish, publish_did_document_to_kubo};
pub use ipfs_publish::{
validate_ipfs_publish_request, IpfsPublishDidRequest, IpfsPublishDidResponse,
ValidatedIpfsPublish,
};
#[cfg(all(not(target_arch = "wasm32"), feature = "kubo"))]
pub use kubo::KuboKey;
pub use pinning::{pin_update_add_rm, PinUpdateOutcome};