STM
is an application designed to be simple and realible terminal chat.
- C compiler
- Termui
STM
was conceived with a need for a simple Text User Interface (TUI). Although ncurses
was deemed excessive for this purpose, I created Termui
, a lightweight statically linked library tailored for this project.
Ps: While initially designed for this project, Termui
isn't limited to this application and can be utilized for other purposes. Explore the repository for more information.
The installation process involves a Makefile
, making it straightforward. Upon executing the following command, you will obtain the server
and client
binaries.
make
# or
make build-linux
To initiate the server-side application responsible for managing clients, use this command:
./stm-server [server_ip] [port]
Ensure port forwarding is configured if you intend to use it across WAN networks.
Subsequently, connect to the server using this command:
./stm [server_ip] [username] [port]
Upon successful connection, you'll see a prompt at the bottom of the terminal for sending messages. Incoming messages will appear in the terminal's message history section at the top.
- Create a basic UDP chat app
- Implement some basic terminal interface
- Implement basic message metadata
- Implement Termui TUI library
- Implement multi-threading for both client and server
- Make it work at WAN network
- Replace
select
withepoll
- Implement Winsock library so it work on Windows XD
- Add unit tests
This project operates under the MIT License, welcoming contributions from everyone. Feel free to fork the repository, make changes, and submit pull requests. Your contributions are valued and appreciated!