Expand description
Custom DHT provider interface for pluggable DHT implementations
This module provides a trait-based abstraction for DHT implementations, allowing IPFRS to support multiple DHT backends beyond Kademlia.
§Features
- Pluggable DHT: Support for alternative DHT implementations
- Provider Trait: Common interface for all DHT backends
- Provider Registry: Dynamic registration and selection of DHT providers
- Extensibility: Easy integration of custom DHT algorithms
§Example
use ipfrs_network::dht_provider::{DhtProvider, DhtProviderRegistry, DhtCapabilities};
use ipfrs_network::dht_provider::kademlia::KademliaDhtProvider;
use std::sync::Arc;
// Register DHT providers
let mut registry = DhtProviderRegistry::new();
registry.register("kademlia", Arc::new(KademliaDhtProvider::new()));
// Select and use a DHT provider
if let Some(provider) = registry.get("kademlia") {
let caps = provider.capabilities();
println!("Provider supports content routing: {}", caps.supports_content_routing);
}Modules§
- kademlia
- Kademlia DHT provider implementation
Structs§
- DhtCapabilities
- Capabilities of a DHT provider
- DhtPeer
Info - Peer information from DHT
- DhtProvider
Registry - Registry for DHT providers
- DhtProvider
Stats - Statistics for DHT provider
- DhtQuery
Result - Result of a DHT query
Enums§
- DhtProvider
Error - Errors that can occur in DHT provider operations
Traits§
- DhtProvider
- Common trait for DHT providers