#bittorrent #tracker #magnet #torrent #infohash

hightorrent

支持 Bittorrent v1、v2 和混合型 BitTorrent 的高级库

1 个不稳定版本

0.1.0 2022 年 12 月 22 日

#1299数据结构

AGPL-3.0-only

145KB
882

HighTorrent

HighTorrent 是一个包含高级数据结构和函数的库,用于研究和交互 Bittorrent v1 和 v2 BitTorrent。HighTorrent 并不旨在具有丰富的功能,而是要超级易于使用并与更高级的 BitTorrent 软件进行交互,并且完全不可能误用。

请注意,HighTorrent 不是一个网络库。它不会提供查询 DHT 和/或下载 BitTorrent 的任何实用工具。HighTorrent 在软件栈中处于较低层次。

我们主要提供从 BitTorrent/magnet 中提取名称和散列值的实用工具,使用 MagnetLinkTorrentFile 结构,但将来可能会提供更多高级实用工具(欢迎 PR)。

此外,我们提供 Torrent 结构和 IntoTorrent 特性,代表完全加载的 BitTorrent。这些辅助工具旨在被更多样化的 BitTorrent 库使用,以提供开箱即用的互操作性。

最后,SingleTargetMultiTarget 结构表示一个或多个您希望交互的 BitTorrent。包含的字符串值是不明确的,可以代表一个精确的 InfoHash 或一个与 libtorrent 兼容的 TorrentID(截断的散列)。

相关项目

  • intermodal:用于管理 BitTorrent 的 CLI 程序,但不公开库包

您知道其他相关 Rust 项目吗?请告诉我们。

此库是作为 TorrentManager 项目的一部分开发的,因为没有高级库可以读取支持 Bittorrent v2 BitTorrent 的 magnet 链接和 torrent 文件。随着更大项目的需求增加,将添加新功能,但如果此库也能惠及其他人员和项目,也欢迎提出建议。

v1 版本的潜在改进

  • 手动实现错误以消除snafu依赖
  • 提供一次性方法从种子/magnet中读取名称/哈希
  • 将哈希存储为整数(而非字符串)以优化
  • 使Tracker区分HTTP/HTTPS追踪器
  • 实现多目标过滤,包括布尔逻辑(AND/OR/XOR)
  • 为TorrentFile提供更多信息(例如文件列表)
  • 考虑将Torrent替换为特性

许可证

GNU AGPL v3

依赖项

约2.1-3MB
约90K SLoC