17 releases
Uses new Rust 2021
0.3.2 | Jan 10, 2023 |
---|---|
0.3.1 | Dec 21, 2022 |
0.2.3 | Dec 20, 2022 |
0.1.9 | Dec 7, 2022 |
0.1.8 | Nov 26, 2022 |
#1853 in Network programming
404 downloads per month
Used in 14 crates
(2 directly)
110KB
2K
SLoC
Quic-Rpc
A streaming rpc system based on quic
Goals
Interaction patterns
Provide not just request/response RPC, but also streaming in both directions, similar to grpc.
- 1 req -> 1 res
- 1 req, update stream -> 1 res
- 1 req -> res stream
- 1 req, update stream -> res stream
It is still a RPC system in the sense that interactions get initiated by the client.
Transports
- memory transport with very low overhead. In particular, no ser/deser, currently using flume
- quic transport via the quinn crate
- transparent combination of the above
API
- The API should be similar to the quinn api. Basically "quinn with types".
Non-Goals
- Cross language interop. This is for talking from rust to rust
- Any kind of verisoning. You have to do this yourself
- Making remote message passing look like local async function calls
- Being runtime agnostic. This is for tokio
Example
Dependencies
~3.5–9.5MB
~153K SLoC