Skip to content
gxuxhxmPublic

About

RavenPeer is a serverless, CLI-based Python application for peer-to-peer audio and video calling over direct TCP connections

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

RavenPeer 🐦‍⬛

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.

Features

  • 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

Project Structure

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

Requirements

  • Python 3.10+
  • Webcam
  • Microphone
  • Speakers

Install dependencies:

pip install -r requirements.txt

Running

python cli.py

Workflow

  1. Generate/View your identity.
  2. Create an invite file.
  3. Share the invite with another user.
  4. Import each other's invite.
  5. One user waits for a connection.
  6. The other connects using the peer's IP.
  7. Handshake completes.
  8. Audio and video call begins.

Technologies

  • Python
  • OpenCV
  • NumPy
  • PyAudio
  • Threading
  • Socket Programming
  • JSON

Current Limitations (v1)

  • 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

Future Improvements

  • End-to-end encryption
  • File transfer
  • Screen sharing
  • Text chat
  • Better UI
  • Connection discovery
  • Cross-platform packaging

License

This project is open source under the MIT License


About

RavenPeer is a serverless, CLI-based Python application for peer-to-peer audio and video calling over direct TCP connections

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages