Base de datos NoSQL reactiva y local-first para aplicaciones JavaScript, compatible con navegadores, Node.js, React Native y Electron, con replicación a tu propio backend.
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
Instala el paquete con npm
npm install gun - 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
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.
La plataforma de desarrollo basada en Postgres ofrece una base de datos Postgres alojada con autenticación, APIs autogeneradas, almacenamiento y funciones en tiempo real, como alternativa a Firebase.
ORM para TypeScript y JavaScript en Node.js y otras plataformas JS, compatible con los patrones Active Record y Data Mapper y con numerosas bases de datos SQL y NoSQL.
Una base de datos multimodelo escrita en Rust que combina datos documentales, de grafos, relacionales, de series temporales y clave-valor, con consultas en tiempo real y control de acceso integrado.
Modelado de objetos para MongoDB en Node.js, con esquemas, modelos, validación y métodos auxiliares de consulta para aplicaciones asíncronas.