4个版本 (破坏性更改)
0.4.0 | 2021年10月1日 |
---|---|
0.3.0 | 2019年12月31日 |
0.2.0 | 2019年2月16日 |
0.1.0 | 2018年12月5日 |
#61 在 #magic
在 2 个存储库中使用 (通过 essrpc)
15KB
342 行
Electron的超级简单RPC (ESSRPC)
ESSRPC是Rust的一个轻量级RPC库,旨在通过调用普通特质方法,尽可能透明地实现RPC调用。
- 允许普通调用特质方法来调用另一个进程(另一个进程、网络等)中的实现
- 对底层传输方式无感知。
- 仅使用稳定的Rust。
魔法通过 essrpc
属性宏实现,可以应用于任何满足以下条件的特质
- 返回一个实现
From<RPCError>
的错误类型的Result
。 - 仅使用实现
Serialize
的参数和返回类型。 - 不使用不安全代码。
请参阅文档以获取示例和更多详细信息。
状态
Alpha。预期一切都会正常工作,但实际使用量很小。
可配置功能
async_client
:启用 异步客户端bincode_transport
:启用 BincodeTransportjson_transport
:启用 JSONTransportwasm_bindgen
:启用 wasm-bindgen 兼容性。具体来说,JSON传输中的UUID生成使用与wasm-bindgen兼容的随机数。
灵感和动机
ESSRPC受到了来自tarpc以及来自 jsonrpc 的 build_rpc_trait!
宏的启发。这两个项目都更为成熟。最近过程宏的稳定化使得ESSRPC能够从更自然的特性定义中生成RPC客户端/服务器对。ESSRPC对底层RPC传输的假设也更少。
依赖项
~1.5MB
~35K SLoC