Um banco de dados NoSQL reativo e local-first para apps JavaScript, executado em navegadores, Node.js, React Native e Electron, com replicação para seu próprio backend.
amark/gun
Um mecanismo e toolkit JavaScript para sincronizar grafos e criar apps descentralizados, offline-first e criptografados de ponta a ponta, com sincronização peer-to-peer.
Alternativa open source a:Firebase
- Estrelas
- 19,149
- Forks
- 1,241
- Issues abertas
- 317
- Último commit
- há 7 dias
O que é?
GUN é um ecossistema de ferramentas para criar aplicações criptografadas e administradas por comunidades, apresentado como uma alternativa open source a backends como Firebase. Ele armazena dados como um grafo de nós chave/valor, capazes de representar documentos, tabelas e outras estruturas, e sincroniza alterações em tempo real entre peers, sem um servidor central mestre.
As aplicações rodam no navegador ou no Node.js, e a biblioteca funciona offline, mesclando atualizações quando os dispositivos se reconectam. O ecossistema inclui o SEA, para autenticação de usuários e criptografia; um peer de relay, que pode ser implantado com Docker, Heroku ou um script de instalação para Linux; além de bindings e exemplos para frameworks como React, Vue, Svelte e Electron.
O projeto usa resolução de conflitos baseada em CRDT, e o README descreve a biblioteca principal como um mecanismo embarcado leve, com cerca de 9 KB após a compactação gzip.
Recursos principais
- 01Sincronização de estado entre clientes em tempo real, de peer para peer.
- 02Modelo de dados em grafo que oferece suporte a chave/valor, tabelas e documentos.
- 03Operação offline-first, com mesclagem automática ao reconectar.
- 04Criptografia de ponta a ponta e autenticação de usuários pelo módulo SEA.
- 05Implantação de peer de relay via Docker, Heroku ou script de instalação para Linux.
Casos de uso
- Criar apps web colaborativos ou multiplayer que continuam funcionando offline.
- Prototipar um backend serverless ou descentralizado em JavaScript.
- Criar repositórios de dados criptografados e controlados pelos usuários para apps pessoais ou comunitários.
- Executar peers de relay auto-hospedados para uma equipe de desenvolvimento.
Início rápido
- 1
Instale o pacote com npm
npm install gun - 2
Execute os exemplos incluídos na pasta do pacote
cd node_modules/gun && npm start
Antes de usar
- A licença está listada como NOASSERTION, então verifique os termos de licença do repositório antes de usar.
- O README não informa uma versão estável, portanto pode haver mudanças entre versões.
Tópicos
Perguntas frequentes
- O que é gun?
- Um mecanismo e toolkit JavaScript para sincronizar grafos e criar apps descentralizados, offline-first e criptografados de ponta a ponta, com sincronização peer-to-peer. GUN é um ecossistema de ferramentas para criar aplicações criptografadas e administradas por comunidades, apresentado como uma alternativa open source a backends como Firebase. Ele armazena dados como um grafo de nós chave/valor, capazes de representar documentos, tabelas e outras estruturas, e sincroniza alterações em tempo real entre peers, sem um servidor central mestre.
- gun é gratuito? Qual é a licença?
- gun é open source sob a licença Other. Confira os termos da licença antes de usá-lo em produtos comerciais.
- gun ainda é mantido?
- Manutenção ativa. O último commit de gun foi em 15 de out. de 2026.
- Para que posso usar gun?
- Criar apps web colaborativos ou multiplayer que continuam funcionando offline. Prototipar um backend serverless ou descentralizado em JavaScript. Criar repositórios de dados criptografados e controlados pelos usuários para apps pessoais ou comunitários. Executar peers de relay auto-hospedados para uma equipe de desenvolvimento.
- Como instalar gun?
- Instale o pacote com npm: npm install gun Execute os exemplos incluídos na pasta do pacote: cd node_modules/gun && npm start
- Onde consigo gun?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/amark/gun
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Biblioteca JavaScript para criar apps web multiplayer em que os navegadores se conectam diretamente por WebRTC, sem precisar manter um servidor próprio.
Plataforma de desenvolvimento Postgres que oferece um banco Postgres hospedado com autenticação, APIs geradas automaticamente, armazenamento e recursos em tempo real como alternativa ao Firebase.
ORM para TypeScript e JavaScript no Node.js e em outras plataformas JS, compatível com os padrões Active Record e Data Mapper e diversos bancos SQL e NoSQL.
Banco de dados multimodelo escrito em Rust que combina dados de documentos, grafos, relacionais, séries temporais e chave-valor, com consultas em tempo real e controle de acesso integrado.
Modelagem de objetos do MongoDB para Node.js, com schemas, models, validação e helpers de consulta para aplicações assíncronas.