Skip to content
/ stm Public

STM (Secure Terminal Messenger) is a command-line messenger focused in security and reliability

License

Notifications You must be signed in to change notification settings

Anthhon/stm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

STM - Secure Terminal Messenger

Introduction

STM is an application designed to be simple and realible terminal chat.

Requirements

Why using 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.

Building

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

Usage

Server-side

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.

Client-side

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.

Roadmap

  • 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 with epoll
  • Implement Winsock library so it work on Windows XD
  • Add unit tests

Contribute

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!