#rpc #rpc-framework #msgpack #messagepack-rpc #named-pipe

ezrpc

人体工程学、灵活且零成本的 RPC 框架

2 个版本

0.1.1 2023年9月11日
0.1.0 2023年6月18日

#221 in WebSocket

MIT 许可证

65KB
1.5K SLoC

功能

  • 人体工程学:RPC 方法参数类型可以是任何实现 serde::Deserialize 的类型,返回类型可以是任何实现 serde::Serialize 的类型
  • 零拷贝:RPC 方法参数类型和返回类型可以是引用类型,如 &[u8]&str,相当于数据在包缓冲区的引用,没有任何拷贝
  • 异步支持
  • WebAssembly 支持:通过 wasm-bindgen 提供内置的 WebSocket 绑定,您可以在 WASM 中使用此 crate,并暴露接口供 JavaScript 使用,请参阅 绑定
  • 灵活:支持多种通信方法,并且您可以通过实现 Adapter 特性来自定义通信方法
    1. 网络:基于 WebSocket,它可以用于通过 WASM 与 Web 进行通信,也可以用于网络上的两个进程之间的通信
    2. IPC(进程间通信):在 Windows 上基于命名管道,而在 Linux 上基于域套接字
    3. 进程内通信:基于 tokio 的通道,可用于同一进程内不同线程之间的通信

依赖

~2–14MB
~166K SLoC