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 |
|
#173 in 操作系统
862 每月下载量
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