{"repo":"dmotz/trystero","free":true,"listed":false,"github":"https://github.com/dmotz/trystero","clone":"git clone https://github.com/dmotz/trystero.git","description":"✨🤝✨ Build instant multiplayer webapps, no server required — Magic WebRTC matchmaking over BitTorrent, Nostr, MQTT, IPFS, Supabase, and Firebase","language":"TypeScript","stars":2699,"topics":["webrtc","p2p","peer-to-peer","chat","matchmaking","ipfs","bittorrent","webtorrent","serverless","firebase"],"license":"MIT","category":"chat-messaging","readme_excerpt":"✨🤝✨ Trystero Build instant multiplayer web apps, no server required 👉 Try it live on trystero.dev 👈 Trystero makes browsers discover each other and communicate directly. No accounts. No deploying infrastructure. Just import and connect. Peers can connect via 🌊 BitTorrent, 🐦 Nostr, 📡 MQTT, ⚡️ Supabase, 🔥Firebase, 🪐 IPFS, or a 🔌 self-hosted WebSocket relay – all using the same API. Besides making peer matching automatic, Trystero offers some nice abstractions on top of WebRTC: - 👂📣 Rooms / broadcasting - 🔢📩 Automatic serialization / deserialization of data - 🎥🏷 Attach metadata to binary data and media streams - ✂️⏳ Automatic chunking and throttling of large data - ⏱🤞 Progress events and promises for data transfers - 🔐📝 Session data encryption - 🏭⚡ Can run peers server-side on Node, Bun, and Deno - ⚛️🪝 React hooks You can see what people are building with Trystero here. --- Contents - How it works - Get started - Listen for events - Broadcast events - Audio and video - Advanced - Binary metadata - Action promises - Progress updates - Encryption - React hooks - Troubleshooting connection issues - Running server-side (Node, Bun, Deno) - Self-hosted WebSocket relay - Write your own strategy - Supabase setup - Firebase setup - API - [ joinRoom(config, roomId, [callbacks]) ](#joinroomconfig-roomid-callbacks) - selfId - getRelaySockets() - pauseRelayReconnection() - resumeRelayReconnection() - Which strategy should I choose? --- How it works 👉 If you just want to ","default_branch":null,"files":null,"tree":[],"storefront":"/r/dmotz","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/dmotz/trystero/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}