RavenPeer is a serverless, CLI-based peer-to-peer desktop communication application built in Python. It enables two devices to establish a direct TCP connection, exchange identities through invite files, perform a mutual handshake, and initiate real-time audio and video communication.
- Direct TCP peer-to-peer connections over LAN or the Internet.
- Device identity generation and storage
- Invite creation and import
- Handshake-based peer verification
- Real-time video streaming (OpenCV)
- Real-time audio streaming (PyAudio)
- Combined audio/video call orchestration
- Simple CLI interface
- Local peer storage
RavenPeer/
├── asciiart.py # CLI banner
├── audio.py # Audio streaming
├── call.py # Starts audio + video together
├── cli.py # Main application
├── connection.py # TCP connection logic
├── crypto.py # Basic cryptographic helpers (v1)
├── handshake.py # Identity exchange
├── identity.py # Identity management
├── invite.py # Invite file creation/loading
├── storage.py # JSON helpers
├── video.py # Video streaming
├── peers/ # Imported peer identities
├── docs/ # Documentation
└── requirements.txt
- Python 3.10+
- Webcam
- Microphone
- Speakers
Install dependencies:
pip install -r requirements.txtpython cli.py- Generate/View your identity.
- Create an invite file.
- Share the invite with another user.
- Import each other's invite.
- One user waits for a connection.
- The other connects using the peer's IP.
- Handshake completes.
- Audio and video call begins.
- Python
- OpenCV
- NumPy
- PyAudio
- Threading
- Socket Programming
- JSON
- Requires direct network connectivity (LAN or public IP with port forwarding)
- No end-to-end encryption
- No NAT traversal
- No file transfer
- No screen sharing
- No chat
- End-to-end encryption
- File transfer
- Screen sharing
- Text chat
- Better UI
- Connection discovery
- Cross-platform packaging
This project is open source under the MIT License