1个不稳定版本

使用旧的Rust 2015

0.0.0 2016年4月2日

#11 in #utp

MIT/Apache

1KB

BitTorrent基础设施项目

Build Status Build status

一组用于使用BitTorrent技术的应用程序的crate集合。

聊天:irc.mozilla.org #bip.rs

Bencode (bip_bencode) - Documentation

关于: Bencode是BitTorrent技术中从元信息文件到DHT消息所使用的二进制编码。Bencode类型包括整数、字节数组、列表和字典,其中后两种可以包含任何Bencode类型(它们可以递归地构建)。

磁盘 (bip_disk) - Documentation

关于: 磁盘管理主要是关于将片段存储到或从实现FileSystem接口的任何对象中加载,这意味着托管的存储可以透明地发送到磁盘,存储在内存中,推送到分布式文件系统,甚至在片段到来时上传到云端。此外,当发送到磁盘管理器的足够块组成了一个完整的片段时,会发送通知,以检测到好或坏的片段。

握手 (bip_handshake) - Documentation

关于: 握手是与对等方连接并交换有关对等方如何与您通信以及反过来如何与您通信的信息的过程。在我们的情况下,有许多可以大致认为是发现对等方的BitTorrent技术(本地对等方发现、DHT、跟踪器、对等方交换),一旦发现对等方,客户端可能希望立即尝试通过握手建立连接。此模块提供用于自定义握手实现的trait,以及标准的BitTorrent握手,以便客户端可以指定对等方发现服务将转发联系信息的握手机制。

对等方 (bip_peer) - Documentation

关于:与bittorrent对等方通信涉及阻塞(告诉某人我们现在不会回应他们),表示兴趣(告诉某人,如果我们没有被阻塞,我们会对他们持有的某些数据感兴趣),以及向对等方下载和上传数据块。此包定义了一些常见的bittorrent消息,包括那些作为ExtensionBits的一部分出现在bip_handshake中,以及那些包含在扩展协议中的消息。我们还提供了一个PeerManager来心跳对等方,并多路复用发送到/从对等方发送的消息,以便客户端更容易与许多对等方异步通信。

选择(bip_select)- 文档

关于:选择被分成三个类别的算法。首先,我们有块揭示,它专注于确定我们应该向谁揭示哪些块(即使我们没有该块...)。其次,我们有块选择,它专注于我们应该下载/上传哪些块。第三,我们有块排队,它是在给定一个我们想下载的块的情况下,我们应该向哪个对等方发送这样的请求。我们可以混合和匹配不同的算法来创建具有与其他群组不同特性的群组。

主线DHT(bip_dht)- 文档

关于:主线DHT被bittorrent用来分发对特定文件感兴趣的对等方的联系信息。更普遍地说,任何应用程序都可以使用主线DHT以分布式和去中心化的方式发现对等方。只要你的应用程序有通过SHA-1哈希(20字节值)暴露对其他对等方感兴趣的方法,你就可以利用DHT。

示例:例如,一个去中心化的聊天应用程序可以要求用户输入要加入的房间名称,然后你可以对那个房间名称进行哈希,并使用该应用程序搜索其他也对加入该房间感兴趣的对等方。

元信息(bip_metainfo)- 文档

关于:元信息文件的核心目的是为对特定文件感兴趣的客户提供一个校验和列表,指示每个哈希块应该有多长,以及文件的目录结构。这允许客户端验证接收到的文件完整性,以及能够重新创建文件的精确目录结构。除此之外,还可以在此文件中包含大量可选信息,例如在DHT中要联系的对等节点,要联系的网络跟踪器,以及注释、创建日期、创建元信息文件的作者等。

跟踪器(bip_utracker)- 文档

关于:跟踪器为bittorrent生态系统中的对等方发现提供了一个集中的解决方案。客户端向一组特定的跟踪器发送消息,更新它们关于与文件下载相关的任何状态变化。然而,我们可以使用启动和停止事件以通用方式使用跟踪器来添加或从跟踪器中移除自己,以实现任何应用程序的对等方发现。

参考文献

许可证

许可协议为以下之一

供您选择。

贡献

除非您明确说明,否则您根据Apache-2.0许可证定义的任何有意提交以包含在作品中的贡献,将按照上述方式双许可,不附加任何额外条款或条件。

无运行时依赖

功能