Skip to content
 
 

Repository files navigation

WhisperNet

image
Serverless Local P2P Messenger

C++ FastAPI React License


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.

✨ Features

  • 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.
image

🚀 Getting Started

🧰 Prerequisites

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.

⚙️ Installation & Run

  1. Clone the repository

    git clone https://github.com/saidhury/WhisperNet.git
    cd whispernet

    Clones the repository from GitHub and enters the project directory.

  2. Make scripts executable (Linux/macOS only)

    chmod +x scripts/*.sh

    Grants execute permission to all shell scripts in the scripts/ folder.
    Windows users can skip this step or use Git Bash.

  3. 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.

  4. 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)
  5. Access the UI Open your browser and navigate to http://localhost:5173.

✅ Verification

After running ./scripts/run_dev.sh, verify that everything started correctly:

  1. 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/
      
  2. Open the browser

  3. Test LAN connectivity

    • Run WhisperNet on another device on the same network — both should discover each other automatically.

🎃 Hacktoberfest

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.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

About

🛰️ A serverless, local P2P messenger built with C++, FastAPI, and React. Chat securely on your LAN without internet access. #hacktoberfest Join the Discord: https://discord.com/channels/707751027973161132/1428518761639448586

Resources

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages