Smallchat is a minimalistic chat server implemented in C, designed as a small-scale example (for didactic purposes) of writing system software such as network servers, multiplexed I/O and client state handling. The project shows how you can build a working chat server (accepting clients, broadcasting messages) in very few lines of C, without heavy libraries or frameworks—essentially minimal code, minimal dependencies, and minimal feature-set to illustrate the core concepts. It uses the simplest assumptions (for example: clients connect via telnet or netcat, line-based I/O) and keeps the message logic straightforward: each received line from one client is broadcast to all others (fan-out). The focus is not on robustness, feature richness or production readiness, but on learning how to write a non-trivial C program, handling sockets, multiplexed input (select/poll), client state, and basic formatting.
Features
- Extremely compact chat server implementation in C using only standard libraries
- Line-based TCP client connections (telnet/netcat compatible) for simplicity
- Fan-out broadcasting of received lines to all connected clients
- Basic nickname support or identifier handling (depending on version)
- Simple multiplexed I/O using select/poll to manage client sockets and state
- Minimal dependencies and straightforward code structure for learning purposes