A work-in-progress terminal-based chat application in C. The server skeleton is complete, and the plan is to build a terminal-based UI (TUI) client in Go using Bubble Tea.
- Multi-client chat over TCP
- Terminal-based UI (TUI) in Go (Bubble Tea)
- Graceful shutdown on Ctrl+C for server
- Message broadcasting between clients
- Optional username support
- TCP server skeleton in C
- Graceful shutdown with Ctrl+C
- Multi-client support
- Client application (Bubble Tea TUI)
- Chat protocol and message broadcasting
- TUI client interface
- GCC or Clang
- Meson and Ninja installed
- Linux/macOS (POSIX-compliant systems recommended)
- Go (for TUI client with Bubble Tea)
After cloning the repository:
git clone https://github.com/shandilyaaryan/pgin.git
cd pginmakeThis will:
- Set up the Meson build in the
backendfolder. - Compile the project using Ninja.
make runThis will:
- Clean previous builds.
- Build the project again.
- Run the executable (
pgin) located inbackend/build:
make cleanRemoves the build directory and Meson cache for a fresh build.
- Implement multi-client handling using
select()or threads - Add message broadcasting
- Create a TUI client in Go using Bubble Tea
- Implement usernames and chat protocol
- This project is currently a work-in-progress.
- Contributions are welcome!