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
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
IPC(Inter-Process Communication): Based named pipe on Windows, while based domain socket on Linux
Inner-Process Communication:Based tokio’s channel,can be used for communication between different threads in the same process