#macro #rpc #traits #transport #parameters #magic #essrpc

过程宏 essrpc_macros

ESSRPC宏。不要直接使用此存储库——使用essrpc存储库。

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)

MIT 许可证

15KB
342

Latest Version docs

Electron的超级简单RPC (ESSRPC)

ESSRPC是Rust的一个轻量级RPC库,旨在通过调用普通特质方法,尽可能透明地实现RPC调用。

  • 允许普通调用特质方法来调用另一个进程(另一个进程、网络等)中的实现
  • 对底层传输方式无感知。
  • 仅使用稳定的Rust。

魔法通过 essrpc 属性宏实现,可以应用于任何满足以下条件的特质

  • 返回一个实现 From<RPCError> 的错误类型的 Result
  • 仅使用实现 Serialize 的参数和返回类型。
  • 不使用不安全代码。

请参阅文档以获取示例和更多详细信息。

状态

Alpha。预期一切都会正常工作,但实际使用量很小。

可配置功能

  • async_client:启用 异步客户端
  • bincode_transport:启用 BincodeTransport
  • json_transport:启用 JSONTransport
  • wasm_bindgen:启用 wasm-bindgen 兼容性。具体来说,JSON传输中的UUID生成使用与wasm-bindgen兼容的随机数。

灵感和动机

ESSRPC受到了来自tarpc以及来自 jsonrpcbuild_rpc_trait! 宏的启发。这两个项目都更为成熟。最近过程宏的稳定化使得ESSRPC能够从更自然的特性定义中生成RPC客户端/服务器对。ESSRPC对底层RPC传输的假设也更少。

依赖项

~1.5MB
~35K SLoC