diff --git a/README.md b/README.md new file mode 100644 index 0000000..b18273a --- /dev/null +++ b/README.md @@ -0,0 +1,69 @@ +# dht_crawler + +一个高性能的 Rust DHT(分布式哈希表)爬虫库,用于爬取 BitTorrent DHT 网络中的种子信息。 + +## 特性 + +- 🚀 **高性能**:基于 Tokio 异步运行时,支持高并发处理 +- 🌐 **双栈支持**:同时支持 IPv4 和 IPv6(DualStack 模式) +- 📦 **自动元数据获取**:自动从对等节点获取完整的种子元数据 +- ⚡ **可配置并发**:支持自定义元数据获取并发数和队列大小 +- 🎯 **灵活回调**:提供多种回调接口,方便自定义处理逻辑 +- 📊 **监控支持**:内置统计和监控接口 + +## 安装 + +在 `Cargo.toml` 中添加依赖: + +```toml +[dependencies] +dht-crawler = "0.0.1" +``` + +## 快速开始 + +### 基本使用 + +```rust +use dht_crawler::prelude::*; + +#[tokio::main] +async fn main() -> Result<()> { + // 配置选项 + let options = DHTOptions { + port: 6881, + auto_metadata: true, + metadata_timeout: 3, + max_metadata_queue_size: 10000, + max_metadata_worker_count: 500, + netmode: NetMode::DualStack, + ..Default::default() + }; + + // 创建 DHT 服务器 + let server = DHTServer::new(options).await?; + + // 设置种子发现回调 + server.on_torrent(|torrent| { + println!("发现种子: {} ({})", torrent.name, torrent.format_size()); + }); + + // 启动服务器 + server.start().await?; + Ok(()) +} +``` + +## 性能优化 + +推荐使用 mimalloc 分配器以获得更好的内存性能: + +```bash +cargo build --release --features mimalloc +``` + +使用 mimalloc 可以显著降低内存占用(通常降低 10-30%)。 + +## 许可证 + +MIT License