Skip to content

SHASANGNIX/WhisperNet

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

30 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

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

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 46.8%
  • JavaScript 29.3%
  • C++ 13.5%
  • Shell 8.0%
  • CMake 1.3%
  • HTML 0.9%
  • CSS 0.2%