1pub mod channel;
44pub mod mesh_store_core;
45pub mod mock;
46pub mod nostr;
47pub mod peer_selector;
48pub mod protocol;
49pub mod real_factory;
50pub mod signaling;
51pub mod store;
52pub mod transport;
53pub mod types;
54
55pub use channel::{ChannelError, LatencyChannel, MockChannel, PeerChannel};
56pub use mesh_store_core::{
57 build_hedged_wave_plan, normalize_dispatch_config, run_hedged_waves, sync_selector_peers,
58 DataPumpStats, HedgedWaveAction, MeshRoutingConfig, MeshStoreCore, ProductionMeshStore,
59 RequestDispatchConfig, ResponseBehaviorConfig, SimMeshStore,
60};
61pub use mock::{
62 clear_channel_registry, MockConnectionFactory, MockDataChannel, MockLatencyMode, MockRelay,
63 MockRelayTransport,
64};
65pub use nostr::{decode_signaling_event, encode_signaling_event, NostrRelayTransport};
66pub use peer_selector::{
67 peer_principal, PeerMetadataSnapshot, PeerSelector, PeerStats, PersistedPeerMetadata,
68 SelectionStrategy, SelectorSummary, PEER_METADATA_SNAPSHOT_VERSION,
69};
70pub use protocol::{
71 bytes_to_hash, create_fragment_response, create_quote_request, create_quote_response_available,
72 create_quote_response_unavailable, create_request, create_request_with_quote, create_response,
73 encode_quote_request, encode_quote_response, encode_request, encode_response, hash_to_bytes,
74 hash_to_key, is_fragmented, parse_message, DataMessage, DataQuoteRequest, DataQuoteResponse,
75 DataRequest, DataResponse, FRAGMENT_SIZE, MSG_TYPE_QUOTE_REQUEST, MSG_TYPE_QUOTE_RESPONSE,
76 MSG_TYPE_REQUEST, MSG_TYPE_RESPONSE,
77};
78pub use real_factory::WebRtcPeerLinkFactory;
79pub use signaling::{MeshRouter, PeerEntry};
80pub use store::{MeshStore, MeshStoreError};
81pub use transport::{PeerLink, PeerLinkFactory, SignalingTransport, TransportError};
82pub use types::{
83 classifier_channel, decrement_htl_with_policy, is_polite_peer, should_forward,
84 should_forward_htl, validate_mesh_frame, ClassifierRx, ClassifierTx, ClassifyRequest, HtlMode,
85 HtlPolicy, IceCandidate, MeshNostrFrame, MeshNostrPayload, MeshStats, MeshStoreConfig,
86 PeerHTLConfig, PeerId, PeerPool, PeerState, PoolConfig, PoolSettings, SignalingMessage,
87 TimedSeenSet, WebRTCStats, BLOB_REQUEST_POLICY, DATA_CHANNEL_LABEL, DECREMENT_AT_MAX_PROB,
88 DECREMENT_AT_MIN_PROB, MAX_HTL, MESH_DEFAULT_HTL, MESH_EVENT_POLICY, MESH_MAX_HTL,
89 MESH_PROTOCOL, MESH_PROTOCOL_VERSION, MESH_SIGNALING_EVENT_KIND, NOSTR_KIND_HASHTREE,
90};