modulate-comms

Crates.iomodulate-comms
lib.rsmodulate-comms
version0.0.1
created_at2025-05-04 14:47:41.856612+00
updated_at2025-05-04 14:47:41.856612+00
descriptionA peer-to-peer chat application with group chat functionality
homepage
repositoryhttps://github.com/dresio/modulate-comms
max_upload_size
id1659690
size138,579
Daniel Resio (dresio)

documentation

README

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.

Commit count: 4

cargo fmt