#p2p #networking

libp2p-rs

多路复用p2p网络框架的最小实现

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日

#38 in #对等网络

MIT许可证

795KB
13K SLoC

libp2p工作的替代仓库

Continuous integration

此仓库是libp2p规范的Rust实现(不同于rust-libp2p),使用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服务器。在此示例中,交互式shell集成用于调试/观察Kad-DHT内部数据结构
    • ...

版本发布

注意:现在主分支是一个活动开发分支(从v0.1.0版本开始),这意味着随时可能会进行破坏性更改。

依赖关系

~20–36MB
~663K SLoC