A LAN chat client built with Rust and egui.
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.
Get the latest binary from Releases.
chmod +x comunicator-client
./comunicator-clientLinux only for now.
- Install Rust:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh - Clone the repo and run:
cargo build --release
- Binary lands at
target/release/comunicator-client
Quick install:
chmod +x build.sh install.sh
./install.sh- On first launch, enter a nickname → server gives you a permanent UUID hash
- Your credentials (nick + hash) are stored in the system keyring (SQLite)
- The client starts a tiny HTTP server on
0.0.0.0:4001in a background thread - Outgoing messages are POSTed to the central server, which forwards them to the target
- Incoming messages arrive on your local port 4001 and appear in the GUI
- Chat history is saved per conversation in the keyring
- 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
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.
- No TLS/encryption – don't expose this to the internet
- The chat needs window focus to refresh instantly (egui quirk – no
request_repaintfrom the receiver thread yet) - If your IP changes, you need to send a message for the server to update your routing entry
Get the latest binary from Releases.
MIT – do whatever you want.