Stoat
The Rust backend behind the Stoat chat service, for anyone self-hosting a community messaging platform or writing a client against its API.

This repository is the backend of Stoat, the collection of Rust services and libraries that run the service, published as a set of crates rather than one binary. The web client lives in a separate repository, so what you get here is strictly the server side.
The workspace splits along clear lines. A REST API server named delta and a WebSocket events server named bonfire sit in front of core crates covering configuration, database access, API models, permission logic, user presence and error types. Supporting services handle file storage, a link proxy and a Tenor proxy, while two daemons take care of scheduled data cleanup and push notifications.
Standing up the development environment pulls in everything it depends on.
- Data stores: MongoDB for records and Redis for transient state.
- Object storage: MinIO stands in for S3, with encryption logic in a dedicated crate.
- Messaging: RabbitMQ carries events between the services.
- LiveKit: a configuration file is copied from the supplied example before the stack starts.
- Tooling: mise, Docker and Git are required, mold is optional for faster compilation, and a default.nix is provided for Nix users.
Rust 1.86.0 or newer is the minimum supported version, and a few just recipes cut crate and binary releases. Configuration lives in a Revolt.toml file and the crates are still published under Revolt names, a reminder of where the project came from. Services are licensed AGPL-3.0-or-later.
Stars
3,283Forks
387Last commit
6 days agoRepository age
5 yearsVersion
0.15.4Repository
stoatchat/stoatchat
Auto-fetched from GitHub .
Open source alternatives similar to Stoat:
Stars
Forks
Last commit
Stars
Forks
Last commit
Stars
Forks
Last commit