Repolode
amark

amark/gun

Motor y toolkit de sincronización de grafos en JavaScript para crear apps descentralizadas, offline-first y cifradas de extremo a extremo, con sincronización entre pares.

Alternativa open source a:Firebase

Estrellas
19,149
Forks
1,241
Issues abiertos
317
Último commit
hace 7 días

¿Qué es?

GUN es un ecosistema de herramientas para crear aplicaciones cifradas gestionadas por comunidades, planteado como alternativa de código abierto a backends como Firebase. Almacena los datos como un grafo de nodos clave/valor que pueden representar documentos, tablas y otras estructuras, y sincroniza los cambios en tiempo real entre pares sin un servidor central maestro.

Las aplicaciones se ejecutan en el navegador o en Node.js, y la biblioteca funciona sin conexión y combina las actualizaciones cuando los dispositivos vuelven a conectarse. El ecosistema incluye SEA para la autenticación de usuarios y el cifrado, un peer de retransmisión que se puede implementar con Docker, Heroku o un script de instalación para Linux, además de bindings y ejemplos para frameworks como React, Vue, Svelte y Electron.

El proyecto se basa en la resolución de conflictos mediante CRDT, y el README describe la biblioteca principal como un motor embebido y ligero de unos 9 KB comprimido con gzip.

Funciones clave

  • 01Sincronización del estado entre clientes en tiempo real y de igual a igual.
  • 02Modelo de datos en forma de grafo compatible con pares clave/valor, tablas y documentos.
  • 03Funcionamiento offline-first con combinación automática de cambios al reconectarse.
  • 04Cifrado de extremo a extremo y autenticación de usuarios mediante el módulo SEA.
  • 05Implementación de un peer de retransmisión mediante Docker, Heroku o un script de instalación para Linux.

Casos de uso

  • Crear aplicaciones web colaborativas o multijugador que sigan funcionando sin conexión.
  • Prototipar un backend sin servidor o descentralizado en JavaScript.
  • Crear almacenes de datos cifrados y bajo el control de sus usuarios para aplicaciones personales o comunitarias.
  • Ejecutar peers de retransmisión autohospedados para un equipo de desarrollo.

Inicio rápido

  1. 1

    Instala el paquete con npm

    npm install gun
  2. 2

    Ejecuta los ejemplos incluidos desde la carpeta del paquete

    cd node_modules/gun && npm start

Antes de usarlo

  • La licencia aparece como NOASSERTION, así que consulta las condiciones de licencia del repositorio antes de usarlo.
  • El README no indica una versión estable, por lo que puede haber cambios entre versiones.

Temas

Preguntas frecuentes

¿Qué es gun?
Motor y toolkit de sincronización de grafos en JavaScript para crear apps descentralizadas, offline-first y cifradas de extremo a extremo, con sincronización entre pares. GUN es un ecosistema de herramientas para crear aplicaciones cifradas gestionadas por comunidades, planteado como alternativa de código abierto a backends como Firebase. Almacena los datos como un grafo de nodos clave/valor que pueden representar documentos, tablas y otras estructuras, y sincroniza los cambios en tiempo real entre pares sin un servidor central maestro.
¿gun es gratuito? ¿Qué licencia tiene?
gun es open source bajo la licencia Other. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿gun sigue mantenido?
Mantenimiento activo. El último commit de gun fue el 15 oct 2026.
¿Para qué puedo usar gun?
Crear aplicaciones web colaborativas o multijugador que sigan funcionando sin conexión. Prototipar un backend sin servidor o descentralizado en JavaScript. Crear almacenes de datos cifrados y bajo el control de sus usuarios para aplicaciones personales o comunitarias. Ejecutar peers de retransmisión autohospedados para un equipo de desarrollo.
¿Cómo se instala gun?
Instala el paquete con npm: npm install gun Ejecuta los ejemplos incluidos desde la carpeta del paquete: cd node_modules/gun && npm start
¿Dónde consigo gun?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/amark/gun

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

Proyectos relacionados