5个不稳定版本

0.3.0 2021年4月23日
0.2.2 2021年3月2日
0.2.1 2021年1月26日
0.2.0 2021年1月14日
0.1.0 2020年10月26日

#12 in #traits-structs

Download history 62/week @ 2024-03-24 86/week @ 2024-03-31 31/week @ 2024-04-07 34/week @ 2024-04-14 51/week @ 2024-04-21 44/week @ 2024-04-28 41/week @ 2024-05-05 40/week @ 2024-05-12 46/week @ 2024-05-19 35/week @ 2024-05-26 33/week @ 2024-06-02 22/week @ 2024-06-09 46/week @ 2024-06-16 42/week @ 2024-06-23 9/week @ 2024-06-30 15/week @ 2024-07-07

113 每月下载量
用于 15 crates

MIT 许可证

305KB
5.5K SLoC

libp2p的替代仓库

Continuous integration

此仓库是libp2p规范的Rust语言替代实现。与rust-libp2p不同,libp2p-rs使用async/await语法编写,并由异步运行时驱动。尽管如此,许多代码是从rust-libp2p借用的,有些是从go-libp2p借用的。我们试图保持与这两种实现兼容,但遗憾的是不能保证。

文档

如何使用这个库?

如上所述,API与rust-libp2p完全不同。在libp2p-rs中根本不存在“NetworkBehaviour”这样的东西。相反,您应该使用您喜欢的传输来构建Swarm,然后您必须从它创建一个Swarm::Control。Swarm::Control公开了所有Swarm API,可以用来操作Swarm - 打开/读取/写入/关闭流等等。这非常类似于go-libp2p中的BasicHost。至于Kad-DHT,同样,您应该获得Kad::Control,原因相同。此外,您可以将Swarm与Kad结合起来,之后您就有了一个具有路由功能的RoutedHost。

强烈建议详细查看文档和示例代码

代码示例

  • 有关如何编写代码的详细信息,请参阅 examples
    • swarm_simple 示例演示了如何构建传输并创建用于通信的子流。
    • kad_simple 示例演示了如何运行 Kad-DHT 服务器。在此示例中,集成了交互式外壳,用于调试/观察 Kad-DHT 内部数据结构。
    • ...

版本发布

注意:现在主分支是一个活跃的开发分支(从 v0.1.0 开始),这意味着任何时间都可能进行破坏性更改。


lib.rs:

libp2p 的传输、升级、复用和节点处理。

libp2p-core 的主要概念包括:

  • PeerId 是网络中节点的唯一全局标识符。每个节点都必须有一个不同的 PeerId。通常,PeerId 是用于通信通道协商加密的公钥的哈希值,从而保证它们不能被伪造。
  • Transport 特性定义了如何到达远程节点或监听传入的远程连接。请参阅 transport 模块。
  • StreamMuxer 特性在保持远程连接的结构体上实现,可以将此连接细分为多个子流。请参阅 muxing 模块。
  • UpgradeInfoUpgrader 特性定义了如何将每个子流升级为使用协议。请参阅 upgrade 模块。

依赖关系

~20MB
~437K SLoC