Module dht_provider

Module dht_provider 

Source
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
DhtPeerInfo
Peer information from DHT
DhtProviderRegistry
Registry for DHT providers
DhtProviderStats
Statistics for DHT provider
DhtQueryResult
Result of a DHT query

Enums§

DhtProviderError
Errors that can occur in DHT provider operations

Traits§

DhtProvider
Common trait for DHT providers