Skip to content

Latest commit

 

History

24 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Comunicator Client

A LAN chat client built with Rust and egui.


What is this?

Comunicator is a decentralized-ish chat app for your local network. You register on a server, get a unique hash, and then you can DM anyone else who's registered. Messages go through a central server, but every client also runs its own HTTP receiver on port 4001. Think of it as a janky homemade Discord for LAN parties.


Download

Get the latest binary from Releases.

chmod +x comunicator-client
./comunicator-client

Linux only for now.


Setup (from source)

  1. Install Rust: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  2. Clone the repo and run:
    cargo build --release
  3. Binary lands at target/release/comunicator-client

Quick install:

chmod +x build.sh install.sh
./install.sh

How it works

  1. On first launch, enter a nickname → server gives you a permanent UUID hash
  2. Your credentials (nick + hash) are stored in the system keyring (SQLite)
  3. The client starts a tiny HTTP server on 0.0.0.0:4001 in a background thread
  4. Outgoing messages are POSTed to the central server, which forwards them to the target
  5. Incoming messages arrive on your local port 4001 and appear in the GUI
  6. Chat history is saved per conversation in the keyring

Features

  • Real-time-ish messaging over LAN
  • Message bubbles: blue = yours, purple = theirs
  • Search users by nick in the sidebar
  • Change your nick or regenerate your hash
  • Conversation history persists between sessions
  • Auto-scroll to bottom on new messages
  • Profile panel to view your info

Configuration

The server URL is hardcoded to http://192.168.0.112:4001. Change it in src/main.rs if your server runs elsewhere. Port 4001 must be open on your firewall for incoming messages.


Notes

  • No TLS/encryption – don't expose this to the internet
  • The chat needs window focus to refresh instantly (egui quirk – no request_repaint from the receiver thread yet)
  • If your IP changes, you need to send a message for the server to update your routing entry

Server

Get the latest binary from Releases.


License

MIT – do whatever you want.

About

Part 1 of a Comunicator project

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages