Stoat Backend
The services and libraries that power the Stoat service.| Crate | Path | Description | |
|---|---|---|---|
core/config |
crates/core/config | Core: Configuration | |
core/database |
crates/core/database | Core: Database Implementation | |
core/files |
crates/core/files | Core: S3 and encryption subroutines | |
core/models |
crates/core/models | Core: API Models | |
core/permissions |
crates/core/permissions | Core: Permission Logic | |
core/presence |
crates/core/presence | Core: User Presence | |
core/result |
crates/core/result | Core: Result and Error types | |
core/coalesced |
crates/core/coalesced | Core: Coalescion service | |
delta |
crates/delta | REST API server | |
bonfire |
crates/bonfire | WebSocket events server | |
services/january |
crates/services/january | Proxy server | |
services/gifbox |
crates/services/gifbox | Tenor proxy server | |
services/autumn |
crates/services/autumn | File server | |
daemons/crond |
crates/daemons/crond | Timed data clean up daemon server | |
daemons/pushd |
crates/daemons/pushd | Push notification daemon server |
Minimum Supported Rust Version
Rust 1.86.0 or higher.
Development Guide
Before contributing, make yourself familiar with our contribution guidelines and the technical documentation for this project.
Before getting started, you'll want to install:
- mise
- Docker
- Git
- mold (optional, faster compilation)
A default.nix is available for Nix users! Run
nix-shellto activate mise.
As a heads-up, the development environment uses the following ports:
| Service | Port |
|---|---|
| MongoDB | 27017 |
| Redis | 6379 |
| MinIO | 14009 |
| Maildev | 14025 14080 |
| Revolt W |