mirror of
https://github.com/m1ngsama/TNT.git
synced 2025-12-24 10:51:41 +00:00
TNT's Not Tunnel
| include | ||
| src | ||
| .gitignore | ||
| commits.txt | ||
| fix_year.sh | ||
| LICENSE | ||
| Makefile | ||
| README.md | ||
TNT
TNT's Not Tunnel - A lightweight terminal chat server written in C
Features
- ✨ Vim-style operations - INSERT/NORMAL/COMMAND modes
- 📜 Message history - Browse with j/k keys
- 🕐 Full timestamps - Year-month-day hour:minute with timezone
- 📖 Bilingual help - Press ? for Chinese/English help
- 🌏 UTF-8 support - Full support for Chinese, Japanese, Korean
- 📦 Single binary - Lightweight ~50KB executable
- 🚀 Telnet access - No client installation needed
- 💾 Message persistence - All messages saved to log file
- ⚡ Low resource usage - Minimal memory and CPU
Building
make
For debug build:
make debug
Running
./tnt
Connect from another terminal:
telnet localhost 2222
Usage
Operating Modes
- INSERT - Type and send messages (default)
- NORMAL - Browse message history
- COMMAND - Execute commands
Keyboard Shortcuts
INSERT Mode
ESC- Enter NORMAL modeEnter- Send messageBackspace- Delete characterCtrl+C- Exit
NORMAL Mode
i- Return to INSERT mode:- Enter COMMAND modej- Scroll down (older messages)k- Scroll up (newer messages)g- Jump to topG- Jump to bottom?- Show helpCtrl+C- Exit
COMMAND Mode
Enter- Execute commandESC- Cancel, return to NORMALBackspace- Delete character
Available Commands
list,users,who- Show online usershelp,commands- Show available commandsclear,cls- Clear command output
Architecture
- Network: Multi-threaded TCP server
- TUI: ANSI escape sequences
- Storage: Append-only log file
- Concurrency: pthread + rwlock
Configuration
Set port via environment variable:
PORT=3333 ./tnt
Technical Details
- Written in C11
- POSIX-compliant
- Thread-safe operations
- Proper UTF-8 handling for CJK characters
- Box-drawing characters for UI
License
MIT License - see LICENSE file