An alpha server implementation of the River protocol in rust.
Feature | Support | Comments |
---|---|---|
River Server | ✔️ | |
River Client | ❌ | |
Pluggable Codecs | ✔️ | JSON and MessagePack codecs are provided as well as support for custom codecs |
Pluggable Transports | ❌ | WebSocket support is hardcoded in with no other transport options yet |
rpc procedures |
✔️ | |
upload procedures |
✔️ | |
subscription procedures |
❔ | Mostly supported, however server-side close semantics are not fully correct |
stream procedures |
❔ | Mostly supported, however server-side close semantics are not fully correct |
Transparent Reconnection | ❌ | See #1 |
Strong Typing for procedures | ❌ | Currently only message headers and control messages are strongly typed, procedures get dynamic values |
Heartbeats | ❔ | Server sends heartbeats but does not deal with unresponsive clients yet |
Error Recovery | ❔ | Unwrap is still widely used internally, better error handling using thiserror (instead of anyhow) is needed |
Handshake Metadata Validation | ❌ |