MyTeams
A Teams-like chat in Rust: a multi-client server, a command-line client, a text protocol written as an RFC, and data that survives restarts.
- Period
- Mar 2026 – Apr 2026
- Role
- Server events, authorization and persistence
- Team
- 3 people
- Status
- archived
Stack and tags
MyTeams is a small clone of a workplace chat: people log in, send private messages, join teams and talk in channels, threads and replies. A server that many people connect to at once, and a command-line client, both written in Rust.
How it works
Client and server speak a text protocol written down as a formal document before any code, which let the two be built in parallel. The server handles every connection in a single loop, tells the right people about each new message, and saves everything to files, so nothing is lost on restart. The client remembers where you are, so the same few commands work for a team, a channel or a thread.
What I took from it
- A protocol document is a contract both programs can be checked against.
- Handling every bad input with a clear error, instead of crashing, is what makes a server something people can rely on.