Repolode
dmotz

dmotz/trystero

Una biblioteca JavaScript para crear aplicaciones web multijugador en las que los navegadores se conectan entre sí mediante WebRTC, sin tener que ejecutar un servidor propio.

Estrellas
2,796
Forks
161
Issues abiertos
7
Último commit
ayer

¿Qué es?

Trystero se encarga del proceso de búsqueda de pares que WebRTC requiere normalmente. Los navegadores se unen a una sala mediante un ID y se encuentran a través de un canal de señalización como Nostr (el predeterminado), BitTorrent, MQTT, IPFS, Supabase, Firebase o un relay de WebSocket autohospedado. Una vez conectados, los datos de la aplicación viajan directamente entre pares y se cifran de extremo a extremo, por lo que el medio de señalización solo transmite los datos de conexión.

Además de WebRTC, ofrece salas y difusión de mensajes, acciones tipadas para enviar mensajes, serialización automática y división en fragmentos de cargas grandes, eventos de progreso, llamadas de solicitud y respuesta, y compatibilidad con flujos de audio y video. La misma API funciona en el navegador y en Node, Bun y Deno; también incluye hooks de React. Para cambiar de estrategia, solo hay que cambiar el paquete importado.

Trystero está escrito en TypeScript y se distribuye en npm con el nombre de paquete trystero, mientras que los paquetes específicos de cada estrategia se publican bajo el scope @trystero-p2p.

Funciones clave

  • 01Descubrimiento de pares sin servidor mediante Nostr, BitTorrent, MQTT, IPFS, Supabase, Firebase o un relay de WebSocket
  • 02Salas con difusión de mensajes y acciones personalizadas tipadas para enviar mensajes a pares
  • 03Serialización automática y división en fragmentos de datos grandes, con eventos de progreso
  • 04Intercambio de flujos de audio y video entre pares
  • 05Cifrado de sesiones opcional mediante contraseña y compatibilidad con servidores TURN
  • 06Funciona en navegadores y en el servidor con Node, Bun y Deno

Casos de uso

  • Crear un juego multijugador para navegador sin mantener un backend
  • Crear una sala privada de chat de audio o video entre usuarios
  • Transferir archivos directamente entre navegadores en una aplicación web
  • Sincronizar entre colaboradores estados compartidos, como cursores o datos de formularios

Temas

Preguntas frecuentes

¿Qué es trystero?
Una biblioteca JavaScript para crear aplicaciones web multijugador en las que los navegadores se conectan entre sí mediante WebRTC, sin tener que ejecutar un servidor propio. Trystero se encarga del proceso de búsqueda de pares que WebRTC requiere normalmente. Los navegadores se unen a una sala mediante un ID y se encuentran a través de un canal de señalización como Nostr (el predeterminado), BitTorrent, MQTT, IPFS, Supabase, Firebase o un relay de WebSocket autohospedado. Una vez conectados, los datos de la aplicación viajan directamente entre pares y se cifran de extremo a extremo, por lo que el medio de señalización solo transmite los datos de conexión.
¿trystero es gratuito? ¿Qué licencia tiene?
trystero es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿trystero sigue mantenido?
Mantenimiento activo. El último commit de trystero fue el 18 oct 2026.
¿Para qué puedo usar trystero?
Crear un juego multijugador para navegador sin mantener un backend Crear una sala privada de chat de audio o video entre usuarios Transferir archivos directamente entre navegadores en una aplicación web Sincronizar entre colaboradores estados compartidos, como cursores o datos de formularios
¿Dónde consigo trystero?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/dmotz/trystero

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados