1 unstable release
new 0.0.1 | May 4, 2025 |
---|
#13 in #comms
104 downloads per month
42KB
773 lines
modulate-comms - P2P Chat Application
modulate-comms is a peer-to-peer chat application with group chat functionality, built using Rust and WebRTC.
Features
Current
- Peer-to-peer communication using WebRTC
- No central server needed for messaging
- End-to-end encryption
- Low latency messaging
Planned
- Unit tests
- Clean api to allow 3rd party usage
- Room mesh based comms
- User management (still conceptualizing how this will work)
- Video, audio, file management
- Basic front end for usability
- Centrailized system to act as a signaling server
Setup
Prerequisites
- Rust toolchain (1.70.0 or newer)
- Cargo package manager
Installation
- Clone the repository:
git clone https://github.com/dresio/modulate-comms.git
cd modulate-comms
- Build the application:
cargo build
- Run the application:
./target/release/modulate-comms --help
Usage
Direct Connection Mode
Offerer (initiates the connection):
./target/release/modulate-comms offer
Answerer (waits for an offer):
./target/release/modulate-comms answer
Group Chat Mode (Experimental)
./target/release/modulate-comms group --max-peers 5
Chat Commands
Once in a chat session, the following commands are available:
/exit
or/quit
- Exit the chat/help
- Show help message/status
- Show connection status/clear
- Clear the screen/history
- Show message history
Project Structure
"WIP"
Implementation Details
"WIP"
License
Following in line with many rust packages, modulate-comms is dual licensed under Apache License, Version
2.0 or MIT license which you can choose either.
Please note some crates this depends on have other license, which can typically be found in their README files underneath the License header.
Dependencies
~37–56MB
~1M SLoC