#rpc #msgpack #msgpack-rpc

ezrpc

Ergonomic, flexible and Zero-cost RPC framework

2 releases

0.1.1 Sep 11, 2023
0.1.0 Jun 18, 2023

#154 in WebSocket

MIT license

65KB
1.5K SLoC

Features

  • Ergonomic: the arguments type of RPC method can be any type which impls serde::Deserialize, and the returned type can be any type which impls serde::Serialize
  • Zero-copy: the arguments type and returned type of RPC method can be reference type such as &[u8], &str, equivalent to reference to the data in packet buffer, without any copy
  • Asynchronous support
  • WebAssembly support:provides built-in bindings to WebSocket via wasm-bindgen, you can use this crate in WASM,and exposed interfaces to JavaScript to use it in browser, check out the binding
  • Flexible: multiple communication method support, and you can impl the Adapter trait to custom the communication method
    1. Network: Based WebSocket,it can be used to communicate with Web(via WASM),and can also be used for communication between two processes on the network
    2. IPC(Inter-Process Communication): Based named pipe on Windows, while based domain socket on Linux
    3. Inner-Process Communication:Based tokio's channel,can be used for communication between different threads in the same process

Dependencies

~2–15MB
~171K SLoC