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 日 |
#49 in #对等网络
用于 4 crates
325KB
5.5K SLoC
libp2p 的工作的替代仓库
此仓库是 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
- 设计文档可以在
docs
中找到
代码示例
- 有关如何编写代码的详细信息可以在
examples
中找到- swarm_simple 示范了如何构建传输和创建用于通信的子流
- kad_simple展示了如何运行Kad-DHT服务器。在这个示例中,交互式shell被集成以进行调试/观察Kad-DHT内部数据结构
- ...
版本发布
注意:主分支现在是一个活跃的开发分支(从v0.1.0开始),这意味着任何时候都可能进行破坏性更改。
lib.rs
:
Aes加密通信和握手过程实现
依赖项
~24MB
~467K SLoC