Skip to main content

shadow_dht/
lib.rs

1//! Distributed Hash Table (DHT) implementation based on Kademlia
2//! 
3//! Provides peer discovery, routing, and distributed key-value storage.
4
5pub mod routing;
6pub mod store;
7pub mod node;
8pub mod replication;
9
10pub use routing::{RoutingTable, KBucket};
11pub use store::{DHTStore, StoredValue};
12pub use node::{DHTNode, NodeConfig};
13pub use replication::{ReplicationManager, ReplicationConfig, ReplicationTask, ReplicationPriority, ReplicationStats};
14
15use shadow_core::PeerId;
16use shadow_core::error::Result;
17
18/// DHT configuration
19#[derive(Debug, Clone)]
20pub struct DHTConfig {
21    /// K-bucket size (typically 20)
22    pub k: usize,
23    /// Alpha parameter for parallel queries (typically 3)
24    pub alpha: usize,
25    /// Replication factor
26    pub replication: usize,
27    /// Key republish interval in seconds
28    pub republish_interval: u64,
29}
30
31impl Default for DHTConfig {
32    fn default() -> Self {
33        Self {
34            k: 20,
35            alpha: 3,
36            replication: 3,
37            republish_interval: 3600, // 1 hour
38        }
39    }
40}