#![deny(unsafe_code)]
pub mod endpoint;
pub(crate) mod ffi;
pub(crate) mod http;
mod addr;
mod crypto;
mod encoding;
mod error;
pub mod events {
pub use crate::http::events::*;
}
pub mod registry {
pub use crate::ffi::registry::*;
}
pub use http::body::{Body, BoxError};
pub use http::client::{fetch_request, FetchError};
pub use http::server::{serve, serve_with_events, RemoteNodeId, ServeHandle, ServeOptions};
pub use ffi::dispatcher::{ffi_serve, ffi_serve_with_callback, respond};
pub use ffi::fetch::fetch;
#[allow(clippy::disallowed_types)] pub use ffi::handles::{
make_body_channel, BodyReader, HandleStore, ResponseHeadEntry, StoreConfig,
};
pub use ffi::session::{CloseInfo, Session};
#[allow(clippy::disallowed_types)] pub use ffi::types::{FfiDuplexStream, FfiResponse, RequestPayload};
pub use endpoint::{
parse_direct_addrs, AddressLookupRemoval, AddressLookupSource, AddressLookupUpsert,
AddressLookupUpsertError, ConnectionEvent, DiscoveryOptions, EndpointStats, IrohEndpoint,
NetworkingOptions, NodeAddrInfo, NodeOptions, PathInfo, PeerStats, PoolOptions,
SourceScopedAddressLookup, StreamingOptions,
};
pub use events::TransportEvent;
pub use http::server::stack::{CompressionOptions, StackConfig};
pub use registry::{get_endpoint, insert_endpoint, remove_endpoint};
pub use error::{CoreError, ErrorCode};
pub const ALPN: &[u8] = b"iroh-http/2";
pub const ALPN_DUPLEX: &[u8] = b"iroh-http/2-duplex";
pub const ALPN_STR: &str = "iroh-http/2";
pub const ALPN_DUPLEX_STR: &str = "iroh-http/2-duplex";
pub const KNOWN_ALPNS: &[&str] = &[ALPN_STR, ALPN_DUPLEX_STR];
pub use crypto::{generate_secret_key, public_key_verify, secret_key_sign};
pub(crate) use encoding::base32_decode;
pub use encoding::base32_encode;
pub use addr::{node_ticket, parse_node_addr, ParsedNodeAddr};