1pub mod backend;
4pub mod config;
5pub mod error;
6pub mod mesh;
7pub mod node_id;
8pub mod profile;
9pub mod raft;
10
11use crate::config::NodeConfig;
12use crate::error::MeshError;
13use crate::mesh::Mesh;
14pub use crate::mesh::MeshHandle;
15pub use crate::node_id::NodeId;
16pub use crate::profile::{MessageProfile, enforce_profile};
17pub use crate::raft::{
18 ChirpsRaftTransport, MetricsError, RaftConfig, RaftError, RaftMessage, RaftMetricsCollector,
19 RaftMetricsUpdate, RaftNode, serve_metrics,
20};
21pub use alopex_chirps_file_transfer::{
22 BroadcastHandle, CompressionAlgorithm, ConflictResolution, FileInfo, FileMetadata,
23 FileTransferConfig, FileTransferError, FileTransferService, FileTransferServiceImpl,
24 HashAlgorithm, ListOptions, RemoveOptions, RetryPolicy, SyncDirection, SyncHandle, SyncOptions,
25 TransferHandle, TransferKind, TransferMode, TransferOptions, TransferSessionId,
26 TransferSessionInfo, TransferState,
27};
28pub use alopex_chirps_wire::frame::{Frame, UserMessage};
29
30pub async fn start(config: NodeConfig) -> Result<MeshHandle, MeshError> {
35 Mesh::start(config).await
36}