Skip to content

Latest commit

 

History

History
75 lines (41 loc) · 1.86 KB

File metadata and controls

75 lines (41 loc) · 1.86 KB

MeshChat

MeshChat is a peer-to-peer encrypted LAN messenger with file transfer, automatic peer discovery, and a simple GUI. It uses mDNS (Zeroconf) for service discovery, TLS (self-signed certificates) for secure communication, and supports both broadcast and direct messages.

✨ Features

🔒 Encrypted Communication using SSL/TLS with self-signed certificates.

🌐 Peer Discovery via mDNS (Zeroconf) – automatically finds other MeshChat users on the network.

💬 Chat Messaging

Broadcast messages to all peers

Direct messages to selected peers

📂 File Transfer

Send files to connected peers

Files are saved in a received_files/ folder with timestamped filenames

🗂️ Chat History Logging stored in chat_history.log

💻 Cross-platform GUI built with Tkinter

⚡ Resilient Connections with retries, heartbeats, and peer status updates

📦 Requirements

Install dependencies with:

pip install cryptography zeroconf

(Tkinter is included with most Python distributions.)

🚀 Usage

Run MeshChat with:

python meshchatv5.py

On first run, you’ll be prompted to set up a username, port, and timeout.

Your config will be saved in config.json.

Known peers are stored in peers.json.

📁 Project Structure meshchatv5.py # Main program config.json # Saved user configuration peers.json # Known peers list meshchat.log # Application logs chat_history.log # Chat message & file transfer history received_files/ # Folder for received files server.crt / .key # Self-signed TLS certificate and key

⚠️ Notes

MeshChat is designed for local network communication.

Since it uses self-signed certificates, connections are trusted without validation.

Use only in trusted LAN environments.

🛠️ Future Improvements

Multi-language support

Encrypted chat history

Improved file transfer progress bar

Mobile app integration