Serverless Local P2P Messenger
WhisperNet is a proof-of-concept local area network messenger. It utilizes a high-performance C++ core for UDP broadcasts and messaging, allowing for serverless, decentralized communication between users on the same network. No internet connection required.
- Serverless: No central server required; fully peer-to-peer.
- Auto-Discovery: Automatically finds other WhisperNet users on your LAN.
- Hybrid Architecture: Combines raw C++ networking speed with a modern React UI.
- Retro UI: Terminal-inspired interface.
Before running WhisperNet, make sure you have the following dependencies installed:
| Dependency | Minimum Version | Purpose |
|---|---|---|
| C++ Compiler | GCC / Clang / MSVC | Compiles the C++ core for UDP messaging |
| CMake | 3.10+ | Generates build files for the C++ core |
| Python | 3.8+ | Runs the FastAPI backend |
| Node.js (LTS) | 18.x+ | Runs the React (Vite) frontend |
| npm | Included with Node.js | Installs frontend dependencies |
Quick setup tips:
-
Linux / Ubuntu
sudo apt update sudo apt install build-essential cmake python3 python3-pip nodejs npm
-
macOS
brew install cmake python node
-
Windows
Install Visual Studio Build Tools (select Desktop development with C++).
Install Python 3.8 or higher and Node.js LTS
Make sure all tools are added to your PATH.
-
Clone the repository
git clone https://github.com/saidhury/WhisperNet.git cd whispernetClones the repository from GitHub and enters the project directory.
-
Make scripts executable (Linux/macOS only)
chmod +x scripts/*.shGrants execute permission to all shell scripts in the
scripts/folder.
Windows users can skip this step or use Git Bash. -
Build the C++ Core
./scripts/build_core.sh
Runs CMake to compile the C++ networking core into a shared library (
.so/.dll).
This component handles UDP broadcast, discovery, and peer-to-peer messaging. -
Run the development environment
./scripts/run_dev.sh
Installs all backend and frontend dependencies and launches both:
- FastAPI backend (Uvicorn server)
- React frontend (Vite dev server)
-
Access the UI Open your browser and navigate to http://localhost:5173.
After running ./scripts/run_dev.sh, verify that everything started correctly:
-
Check terminal output
- You should see backend logs like:
INFO: Uvicorn running on http://127.0.0.1:8000 INFO: Application startup complete. - And frontend logs like:
VITE vX.Y.Z ready in 300ms β Local: http://localhost:5173/
- You should see backend logs like:
-
Open the browser
- Visit http://localhost:5173
- The WhisperNet UI should load (terminal-inspired chat interface).
-
Test LAN connectivity
- Run WhisperNet on another device on the same network β both should discover each other automatically.
We welcome contributions! If you are looking to participate in Hacktoberfest, check out the Issues tab for tasks labeled good first issue.
Please read CONTRIBUTING.md (coming soon) before submitting a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.