RTCCafe (Beta)
Introduction
RTCCafe is an open source collection of libraries designed to take the pain out of developing peer to peer applications for the web using WebRTC. It includes both a javascript client for the frontend, and socket.io message handlers for the backend. Whether you want to build collaboration into your application, or stream video and audio between clients, RTCCafe has you covered.
Simple Javascript Client
Simply tell the javascript client to join a "room" and it will discover and connect to every peer within.
Plug-in Servers
The backend of an RTCCafe application can be implemented simply by plugging your existing socket.io server instance into one of RTCCafe's wrapper functions. The wrapper functions install all the message handlers necessary to help peers discover and connect to eachother.
Currently, only flask socket.io is supported, but more server implementations are coming, including node.js.
Safely Upgradable
The javascript client uses a versioned API to talk the the server, so your application won't be broken by server upgrades.
"Don't Hog my Bandwidth!"
Video and audio streams are not automatically transmitted. Clients make media streams "discoverable" to peers and are only transmitted once requested by a peer.
Authentication/Authorization
RTCCafe is not prescriptive about how to handle authentication because different server implementations handle sessions differently.
Instead, every message sent to the server can by freely mutated to insert any authorization fields and the server can carry out custom validation specific to your application.