qudag_protocol/
lib.rs

1#![deny(unsafe_code)]
2#![allow(missing_docs)]
3
4//! Main protocol implementation and coordination for QuDAG.
5
6pub mod allocator;
7pub mod compatibility;
8pub mod config;
9pub mod coordinator;
10pub mod handshake;
11pub mod instrumentation;
12pub mod message;
13pub mod metrics;
14pub mod node;
15pub mod node_runner;
16pub mod node_runner_adapter;
17pub mod optimization_config;
18pub mod persistence;
19pub mod rpc_server;
20pub mod state;
21pub mod synchronization;
22pub mod types;
23pub mod validation;
24pub mod versioning;
25
26pub use allocator::{get_memory_usage, get_total_allocated, get_total_deallocated};
27pub use compatibility::{CompatibilityAdapter, CompatibilityError, MessageTransformer};
28pub use config::Config as ProtocolConfig;
29pub use handshake::{
30    HandshakeConfig, HandshakeCoordinator, HandshakeError, HandshakeKeys, HandshakeSession,
31};
32pub use instrumentation::{MemoryMetrics, MemoryTracker};
33pub use message::{Message, MessageError, MessageFactory, MessageType, ProtocolVersion};
34pub use node::{Node, NodeConfig, NodeStateProvider};
35pub use node_runner_adapter::NodeRunnerAdapter;
36pub use optimization_config::{
37    AsyncCoordinationConfig, ConfigError as OptimizationConfigError, MessageChunkingConfig,
38    OptimizationConfig, ValidationCacheConfig,
39};
40#[cfg(feature = "rocksdb")]
41pub use persistence::RocksDbBackend;
42pub use persistence::{
43    FileStateStore, MemoryStateStore, PeerInfo as PersistencePeerInfo, PersistenceError,
44    PersistentNodeRunner, Result as PersistenceResult, StartupState, StateStore, StorageStats,
45};
46pub use rpc_server::{
47    NetworkStats, NodeRunnerTrait, PeerInfo as RpcPeerInfo, RpcCommand, RpcServer, RpcTransport,
48};
49pub use state::{ProtocolState, ProtocolStateMachine, StateError, StateMachineConfig};
50pub use types::{ProtocolError, ProtocolEvent};
51pub use versioning::{
52    VersionError, VersionInfo, VersionManager, VersionPreferences, VersionRegistry,
53};
54
55// Re-export coordinator for test compatibility
56pub use coordinator::Coordinator;
57
58// Re-export node runner types
59pub use node_runner::{NodeRunner, NodeRunnerConfig, NodeRunnerError};