https://github.com/potentialstyx/rapids
A WIP implementation of https://github.com/replit/river in rust
https://github.com/potentialstyx/rapids
api river rpc rpc-framework rpc-server rust server
Last synced: 8 months ago
JSON representation
A WIP implementation of https://github.com/replit/river in rust
- Host: GitHub
- URL: https://github.com/potentialstyx/rapids
- Owner: PotentialStyx
- License: agpl-3.0
- Created: 2025-06-21T21:31:51.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-06-24T17:53:40.000Z (9 months ago)
- Last Synced: 2025-06-24T18:29:09.537Z (9 months ago)
- Topics: api, river, rpc, rpc-framework, rpc-server, rust, server
- Language: Rust
- Homepage: https://crates.io/crates/rapids-rs
- Size: 62.5 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://crates.io/crates/rapids) [](https://docs.rs/rapids/) [](https://spdx.org/licenses/AGPL-3.0-only.html)
# Rapids
An alpha server implementation of the [River](https://github.com/replit/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](https://docs.rs/serde_json/latest/serde_json/value/index.html) |
| 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 | ❌ | |
[#1]: https://github.com/potentialstyx/rapids/issues/1