Libp2p-rs

Netwarps 参考 libp2p 实现了一个基于Rust语言的 p2p 底层网络—libp2p-rs。libp2p-rs 大量使用了最新的 async/await 语法,是一个简洁的高性能、轻量化的 p2p 网络方案。 libp2p-rs 摈弃传统的 poll 方式,尝试完全使用 async/await 书写异步代码,系统框架主要参考 go-libp2p,部分代码重用 rust-libp2p,以此探索使用 async/await 方式开发大型网络项目的可行性。 libp2p-rs 已经开源,目前发布的版本是 v0.1.0,大体上完成了相当于 Go 语言版本发布中的 basic host 功能,实现了不同语言之间互联互通,可以用来构建基于 Rust 的网络应用程序。

关于Libp2p-rs
项目特点
项目特点

  • 不使用 Unsafe
  • 不手工实现任何 Future
  • 不使用 future combinator 书写代码
  • 减少泛型参数以及 Trait 关联参数的使用
  • 使用 <dyn Trait> 动态派发实现多态
  • 减少 Mutex<> 之类同步原语的使用
  • 异步代码不使用 std 提供的同步原语
  • 通过 async-trait 加持,在 Trait 中定义 async 方法
  • Github 链接地址