photoncloud-monorepo/chainfire/crates/chainfire-gossip/src/lib.rs
centra 8f94aee1fa Fix R8: Convert submodule gitlinks to regular directories
- Remove gitlinks (160000 mode) for chainfire, flaredb, iam
- Add workspace contents as regular tracked files
- Update flake.nix to use simple paths instead of builtins.fetchGit

This resolves the nix build failure where submodule directories
appeared empty in the nix store.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 16:51:20 +09:00

40 lines
907 B
Rust

//! Gossip/SWIM protocol integration for Chainfire distributed KVS
//!
//! This crate provides:
//! - Node identity for SWIM protocol
//! - Gossip agent with UDP transport
//! - Membership management
//! - Actual state broadcast
pub mod agent;
pub mod broadcast;
pub mod identity;
pub mod membership;
pub mod runtime;
pub use agent::GossipAgent;
pub use broadcast::ActualState;
pub use identity::GossipId;
pub use membership::MembershipChange;
pub use runtime::GossipRuntime;
use thiserror::Error;
/// Gossip protocol errors
#[derive(Error, Debug)]
pub enum GossipError {
#[error("Failed to bind to address: {0}")]
BindFailed(String),
#[error("IO error: {0}")]
Io(#[from] std::io::Error),
#[error("Serialization error: {0}")]
Serialization(String),
#[error("Invalid identity: {0}")]
InvalidIdentity(String),
#[error("Join failed: {0}")]
JoinFailed(String),
}