alopex_chirps/
lib.rs

1//! Alopex Chirps のメッシュAPI。QUICトランスポートとSWIMゴシップをまとめて起動し、送信・ブロードキャスト・イベント購読を提供する。
2
3pub 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
30/// 新しいメッシュを起動する。設定の検証・NodeId永続化・QUICトランスポート・ゴシップエンジンをまとめて初期化する。
31///
32/// # 返り値
33/// 成功時は `MeshHandle` を返す。エラー時は設定・永続化・トランスポートの各失敗を `MeshError` で返す。
34pub async fn start(config: NodeConfig) -> Result<MeshHandle, MeshError> {
35    Mesh::start(config).await
36}