nicolastinger/only-talk-rs — explained in plain English
Analysis updated 2026-05-18
Run a self-hosted backend server for a custom instant messaging app.
Deliver real-time messages with low latency using the QUIC protocol.
Establish direct P2P connections between clients behind routers, with server relay fallback.
Store and serve uploaded files through local storage or an S3-compatible object store.
| nicolastinger/only-talk-rs | avelino/roam-tui | danilaa1/auditkit | |
|---|---|---|---|
| Stars | 21 | 21 | 21 |
| Language | Rust | Rust | Rust |
| Setup difficulty | hard | easy | moderate |
| Complexity | 4/5 | 3/5 | 3/5 |
| Audience | developer | developer | ops devops |
Figures from each repo's GitHub metadata at analysis time.
Requires Rust, PostgreSQL, Redis, and TLS certificates configured before the server will run.
OnlyTalk RS is a backend server for an instant messaging application, written in Rust. It is not a finished chat app with a user interface, it is the server component that a client app would connect to. The project is intended for developers who want to run their own messaging infrastructure. The server handles two kinds of traffic at once. A standard HTTPS API handles account registration, login, friend management, group management, file uploads, and message history queries. A separate QUIC connection handles real-time message delivery. QUIC is a newer network protocol that reduces the delay between sending and receiving a message compared to older approaches. The server runs both services in a single process by default, though they can be split into separate processes for larger deployments. For direct device-to-device connections, the server supports a technique called P2P hole punching, which allows two clients to establish a direct link even when both are behind home routers or firewalls. If that direct connection cannot be established, the server automatically falls back to relaying messages through itself. File sharing supports local storage or any S3-compatible object store such as MinIO, Amazon S3, or Aliyun OSS. Images are automatically converted to WebP format on upload. Large files can be sent in chunks. Files are accessed through pre-signed URLs rather than public links. User passwords are hashed with Argon2. API traffic uses TLS 1.3. Sensitive data in transit is encrypted with RSA public keys. User sessions are managed with JWT tokens stored in Redis. Setup requires Rust, PostgreSQL, Redis, and TLS certificates. Configuration is split between a TOML file for server settings and an environment file for database and storage credentials. The README includes steps for database initialization, certificate placement, and running in development or release mode.
A Rust backend server for instant messaging apps, handling accounts, real-time delivery over QUIC, P2P connections, and file sharing for developers building their own chat infrastructure.
Mainly Rust. The stack also includes Rust, PostgreSQL, Redis.
Setup difficulty is rated hard, with roughly 1h+ to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.