Expand description
§Rapids
An alpha server implementation of the River protocol in rust.
§Feature Support
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 | ❌ |
§⚠️ Weird API Parts
§Result Types
This library contains two result types used with the River
protocol. Information on which to use can be found in the
docs for types::result
. While information on why there
are two can be found in the types
page.
Modules§
- codecs
- Built-in codecs
- dispatch
- Dispatcher and WebSocket River server implementation
- types
- River implementation types
- utils
- Useful functions for River implementations
Constants§
- PROTOCOL_
VERSION - The protocol version currently supported by this library. At the moment this is v2.0