1 个不稳定版本
0.1.0 | 2022 年 12 月 22 日 |
---|
#1299 在 数据结构
145KB
882 行
HighTorrent
HighTorrent 是一个包含高级数据结构和函数的库,用于研究和交互 Bittorrent v1 和 v2 BitTorrent。HighTorrent 并不旨在具有丰富的功能,而是要超级易于使用并与更高级的 BitTorrent 软件进行交互,并且完全不可能误用。
请注意,HighTorrent 不是一个网络库。它不会提供查询 DHT 和/或下载 BitTorrent 的任何实用工具。HighTorrent 在软件栈中处于较低层次。
我们主要提供从 BitTorrent/magnet 中提取名称和散列值的实用工具,使用 MagnetLink
和 TorrentFile
结构,但将来可能会提供更多高级实用工具(欢迎 PR)。
此外,我们提供 Torrent
结构和 IntoTorrent
特性,代表完全加载的 BitTorrent。这些辅助工具旨在被更多样化的 BitTorrent 库使用,以提供开箱即用的互操作性。
最后,SingleTarget
和 MultiTarget
结构表示一个或多个您希望交互的 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