#p2p #networking

libp2prs-secio

libp2p 的 Secio 加密协议

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

MIT 许可证

325KB
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服务器。在这个示例中,交互式shell被集成以进行调试/观察Kad-DHT内部数据结构
    • ...

版本发布

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


lib.rs:

Aes加密通信和握手过程实现

依赖项

~24MB
~467K SLoC