Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/anthhon/stm
STM (Secure Terminal Messenger) is a command-line messenger focused in security and reliability
https://github.com/anthhon/stm
collaboration command-line community innovation open-source programming software-development software-engineering ssl technology web-development xmpp xmpp-client
Last synced: 20 days ago
JSON representation
STM (Secure Terminal Messenger) is a command-line messenger focused in security and reliability
- Host: GitHub
- URL: https://github.com/anthhon/stm
- Owner: Anthhon
- License: mit
- Created: 2023-03-05T13:01:41.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-17T15:55:31.000Z (9 months ago)
- Last Synced: 2024-11-02T00:42:22.243Z (2 months ago)
- Topics: collaboration, command-line, community, innovation, open-source, programming, software-development, software-engineering, ssl, technology, web-development, xmpp, xmpp-client
- Language: C
- Homepage:
- Size: 288 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# STM - Secure Terminal Messenger
## Introduction
`STM` is an application designed to be simple and realible terminal chat.
## Requirements
- C compiler
- [Termui](https://github.com/Anthhon/termui)## 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.
```bash
make
# or
make build-linux
```## Usage
### Server-side
To initiate the server-side application responsible for managing clients, use this command:
```bash
./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:
```bash
./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
- [X] Create a basic UDP chat app
- [X] Implement some basic terminal interface
- [X] Implement basic message metadata
- [X] Implement [Termui](https://github.com/Anthhon/termui) TUI library
- [X] Implement multi-threading for both client and server
- [X] 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](./LICENSE), welcoming contributions from everyone. Feel free to fork the repository, make changes, and submit pull requests. Your contributions are valued and appreciated!