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日

#5 in #libp2p-rs


3 crates 中使用

MIT 许可证

270KB
4.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。

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

  • API 文档可在此处找到:[https://docs.rs/libp2p-rs](https://docs.rs/libp2p-rs "https://docs.rs/libp2p-rs")
  • 设计文档可在 docs 中找到

代码示例

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

版本发布

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


lib.rs:

实现了 libp2p 的 Yamux 多路复用协议,也请参阅规范

依赖关系

~14–19MB
~422K SLoC