#web-rtc #chat #comms #command #applications

app modulate-comms

A peer-to-peer chat application with group chat functionality

1 unstable release

new 0.0.1 May 4, 2025

#13 in #comms

Download history 104/week @ 2025-04-30

104 downloads per month

MIT/Apache

42KB
773 lines

modulate-comms

License

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

  1. Clone the repository:
git clone https://github.com/dresio/modulate-comms.git
cd modulate-comms
  1. Build the application:
cargo build
  1. 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