5个不稳定版本

0.4.0 2024年4月15日
0.3.3 2024年4月1日
0.3.2 2024年3月12日
0.2.4 2024年1月23日
0.1.1 2023年8月14日

#173 in 操作系统

Download history 1/week @ 2024-05-29

862 每月下载量

MIT 许可证

160KB
3.5K SLoC

rrppcc是一个服务于学术研究的RDMA RPC库。

在C++中存在一些性能良好且实用的用户空间RPC引擎(例如,eRPC),它们具有诸如零拷贝等吸引人的特性。然而,当一些原本熟悉这些RPC引擎的系统研究人员开始使用Rust时,他们可能找不到可比的Rust替代品。Rust具有内存安全性、无处不在的闭包和async/await。C++ RPC引擎没有内存安全性,通常不允许使用闭包,并且很少支持C++20协程。

此库提供了一种原生的Rust用户空间RPC,部分灵感来自eRPC。主要特性包括

  • 数据平面完全在用户空间
  • 零拷贝
  • 自动使用RDMA UD进行小消息,RC进行大消息

要使用此库,您必须在计算机上安装可用的RDMA NIC。Mellanox的ConnectX适配器系列是最好的;其他适配器也应该可以使用,只要您已安装libibverbs,但尚未进行测试。

版本

  • 0.2:如果您想将RPC处理程序绑定到Nexus,并且可以容忍一些不健全和不直观的语义(在类型上实现了Send + Sync特质,但实际上它们只能在单个线程中使用)。
  • 0.3:如果您想将RPC处理程序绑定到Rpc,请使用此版本。

依赖

~8–23MB
~286K SLoC