
Research
/Security News
Bitwarden CLI Compromised in Ongoing Checkmarx Supply Chain Campaign
Bitwarden CLI 2026.4.0 was compromised in the Checkmarx supply chain campaign after attackers abused a GitHub Action in Bitwarden’s CI/CD pipeline.
peerpyrtc
Advanced tools
A serverless, Socket.io-compatible WebRTC library for building real-time peer-to-peer applications.
PeerPyRTC is a revolutionary WebRTC DataChannel library that replaces WebSockets with true peer-to-peer communication. Build chat apps, games, collaborative tools, and real-time dashboards without persistent server connections.
emit(), broadcast(), and event-driven architecturepip install peerpyrtc
from flask import Flask, request, jsonify
from peerpyrtc import SignalingManager
app = Flask(__name__)
signaling_manager = SignalingManager(debug=True)
# Handle all messages
@signaling_manager.message_handler
async def on_message(room: str, peer_id: str, message: str):
print(f"Message in {room} from {peer_id}: {message}")
# Handle peer events
@signaling_manager.peer_joined_handler
async def on_peer_joined(room: str, peer_id: str, peer_info: dict):
print(f"🟢 {peer_id} joined {room}")
@signaling_manager.peer_left_handler
async def on_peer_left(room: str, peer_id: str, peer_info: dict):
print(f"🔴 {peer_id} left {room}")
# Standard WebRTC signaling endpoints
@app.route("/offer", methods=["POST"])
def offer():
return jsonify(signaling_manager.offer(**request.json))
@app.route("/candidate", methods=["POST"])
def candidate():
signaling_manager.candidate(**request.json)
return jsonify({"status": "ok"})
@app.route("/leave", methods=["POST"])
def leave():
signaling_manager.leave(**request.json)
return jsonify({"status": "ok"})
if __name__ == "__main__":
app.run(host="0.0.0.0", port=5000)
from peerpyrtc import SignalingManager
# Initialize
signaling_manager = SignalingManager(debug=True)
# Core signaling methods
signaling_manager.offer(room, peer_id, offer) # Handle WebRTC offer
signaling_manager.candidate(room, peer_id, candidate) # Handle ICE candidate
signaling_manager.leave(room, peer_id) # Handle peer leaving
# Room information
signaling_manager.rooms_info() # Get all rooms info
signaling_manager.get_room_peers(room_name) # Get peers in specific room
# Message handling
@signaling_manager.message_handler
async def on_message(room_name: str, sender_id: str, message: str):
# Process every message sent in any room
await database.save_message(room_name, sender_id, message)
# Peer lifecycle events
@signaling_manager.peer_joined_handler
async def on_peer_joined(room_name: str, peer_id: str, peer_info: dict):
# Handle peer joining (real-time, no polling needed)
print(f"New peer {peer_id} joined {room_name}")
await notify_other_services(peer_id, 'joined')
@signaling_manager.peer_left_handler
async def on_peer_left(room_name: str, peer_id: str, peer_info: dict):
# Handle peer leaving (automatic detection)
print(f"Peer {peer_id} left {room_name}")
await cleanup_user_data(peer_id)
MIT License - see LICENSE file for details.
npm install peerpyrtc-clientBuilt with ❤️ for developers who want WebSocket performance without WebSocket complexity.
FAQs
A Python-based WebRTC signaling and data channel library
We found that peerpyrtc demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
/Security News
Bitwarden CLI 2026.4.0 was compromised in the Checkmarx supply chain campaign after attackers abused a GitHub Action in Bitwarden’s CI/CD pipeline.

Research
/Security News
Docker and Socket have uncovered malicious Checkmarx KICS images and suspicious code extension releases in a broader supply chain compromise.

Product
Stay on top of alert changes with filtered subscriptions, batched summaries, and notification routing built for triage.