atproto blogging
1//! Real-time collaboration transport layer.
2//!
3//! Core message types are always available. iroh-based networking
4//! requires the `iroh` feature.
5
6mod messages;
7mod presence_types;
8
9#[cfg(feature = "iroh")]
10mod discovery;
11#[cfg(feature = "iroh")]
12mod node;
13#[cfg(feature = "iroh")]
14mod presence;
15#[cfg(feature = "iroh")]
16mod session;
17
18// Always available - wire protocol
19pub use messages::CollabMessage;
20pub use presence_types::{CollaboratorInfo, PresenceSnapshot, RemoteCursorInfo};
21
22// iroh feature - networking
23#[cfg(feature = "iroh")]
24pub use discovery::{node_id_to_string, parse_node_id, DiscoveredPeer, DiscoveryError};
25#[cfg(feature = "iroh")]
26pub use iroh::EndpointId;
27#[cfg(feature = "iroh")]
28pub use messages::{ReceivedMessage, SignedMessage, SignedMessageError};
29#[cfg(feature = "iroh")]
30pub use node::{CollabNode, TransportError};
31#[cfg(feature = "iroh")]
32pub use presence::{Collaborator, PresenceTracker, RemoteCursor};
33#[cfg(feature = "iroh")]
34pub use session::{CollabSession, SessionError, SessionEvent, TopicId};