Modular P2P Communication Platform - Secure terminal chat with end-to-end encryption
Rustalk is a secure, peer-to-peer terminal chat application built with a modular architecture featuring three main components:
- 🌐
reach: Core P2P networking library with end-to-end encryption - ⚡
rus: CLI operations and user management interface - 🚀
rustalk: Binary installer and starter with npm integration
- 🔐 End-to-End Encryption: All messages are encrypted using industry-standard cryptography
- 🌐 Peer-to-Peer: Direct communication between users without central servers
- 🚀 Cross-Platform: Works on Windows, macOS, and Linux
- 💻 Terminal Interface: Beautiful TUI built with Ratatui
- 🔑 Identity Management: Secure key generation and management
- 📡 Network Discovery: Automatic peer detection and connection
- ⚡ High Performance: Built with Rust for maximum speed and safety
- 📦 Modular Design: Each component can be used independently
Choose your preferred installation method:
npm install -g rustalkcargo install rustalk# Install system-wide and add to PATH
rustalk install
# Quick start (auto-setup if needed)
rustalk start
# Or use direct CLI operations
rus setup # Setup user credentials
rus chat # Start chat session
rus connect <peer> # Connect to peergit clone https://github.com/muhammad-fiaz/rustalk.git
cd rustalk-workflow
bun install
bun run build- bin/rustalk.ts - Main TypeScript CLI interface
- packages/reach/ - Core P2P networking library (Rust)
- packages/rus/ - Direct CLI operations (Rust)
- rustalk/ - Advanced application (Rust)
# Clone and setup
git clone https://github.com/muhammad-fiaz/rustalk.git
cd rustalk
npm install
# Build Rust components
cargo build --release --workspace
# Run directly with TypeScript
npx tsx bin/rustalk.ts setup
npx tsx bin/rustalk.ts chat# Setup your identity
rustalk setup
# Start P2P chat
rustalk chat
# Connect to a peer directly
rustalk connect <ip:port>
# Show user information
rustalk info
### Usage Examples
```bash
# System Management
rustalk install # Install system-wide
rustalk start # Quick start
rustalk start --port 6000 # Custom port
# Direct CLI Operations (via rus)
rustalk run setup # Setup credentials
rustalk run chat # Start chat
rustalk run users list # List users
rustalk run connect <ip:port># Use rus directly for all operations
rus setup # Initial setup
rus chat --port 5000 # Start chat session
rus connect <address> # Connect to peer
rus users list # User management
rus info # Show user infoEach package includes:
- Individual README.md with package-specific documentation
- Apache 2.0 LICENSE file
- Modular architecture allowing independent usage
Configuration:
- User data stored in
~/.rustalk/config.json - Multi-user support with
~/.rustalk/users.json - Cross-platform compatibility (Windows, macOS, Linux)
Licensed under Apache 2.0. For more details, see the LICENSE file.
Please see CONTRIBUTING.md for detailed information about contributing to this project.