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日

#handshake 中排名 #17

每月下载量 26
libp2p-rs 中使用

MIT 许可证

335KB
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 结合起来,之后您就有了一个具有 BasicHost 上路由功能的 RoutedHost。

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

代码示例

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

版本发布

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


lib.rs:

Noise 协议框架 对 libp2p 的支持。

注意:此包仍在实验阶段,API 和协议线都可能进行重大破坏性变更。

此包为各种噪声握手模式(目前为 IKIXXX)提供了 libp2p_core::InboundUpgradelibp2p_core::OutboundUpgrade 实现,这些模式基于特定的迪菲-赫尔曼密钥交换选择(目前仅限 X25519)。

注意:目前只有 XX 握手模式保证与其他 libp2p 实现的互操作性。

所有升级都输出一个由远程静态公钥和表示与远程建立的加密会话的 NoiseOutput 组成的对,实现 futures::io::AsyncReadfutures::io::AsyncWrite

依赖项

~20MB
~442K SLoC