What this is
It's a little like YouTube Live (you can stream your web cam, or join someone else's stream), except peer-to-peer. In technical terms, P2P Ring Stream is a TURN-less WebRTC livestreaming application that relays video primarily along a tree of viewers, with a small mesh overlay for robustness. The server doesn’t carry media: it only does lightweight signaling, keeps an in-memory directory, and coordinates who connects to whom. Thumbnails are sent by the creator for the directory only.
How it works (short version)
- Tree topology for media: the creator is the root; each viewer receives from a parent and forwards to its children.
- Mesh overlay for robustness: a couple extra peer links help chat/data propagation and provide alternate paths when edges are flaky.
- WebRTC only: STUN is used to discover public addresses (no TURN server here). Multiple STUN servers are advertised for resiliency.
- Signed liveness & chat keys: clients can register Ed25519 public keys; the server pings and verifies signed pongs. Chat messages are signed and verified end-to-end by peers.
- Active server polling: the server periodically probes clients for topology health to detect and repair failing links.
- In-memory state: streams, peers, and stats live only in RAM; restarting the server clears them.
How to use it
- To go live: enter your display name and channel title below, then click Go Live. Grant camera/mic permissions on the next page. You can switch devices while live.
- To watch: pick any live stream card on the right and click Watch. If your browser blocks autoplay with sound, tap the “play / unmute” button.
- Chat: messages propagate across the overlay links and must be signed by the sender (handled automatically in-browser).
- Privacy & limits: the server doesn’t record your media and holds only ephemeral metadata. Because there’s no TURN fallback, strict NAT/VPN setups may struggle.
- Compatibility: a modern Chromium/Firefox/Safari browser is recommended.
Start a Stream
All state is in-memory and resets on restart.