Uma biblioteca rápida de armazenamento chave-valor embutido do Google, que mantém chaves e valores em strings ordenadas.
dgraph-io/badger
Banco de dados chave-valor persistente e incorporável, escrito em Go puro, com transações ACID e design otimizado para SSDs.
- Estrelas
- 15,786
- Forks
- 1,334
- Issues abertas
- 76
- Último commit
- ontem
O que é?
BadgerDB é um banco chave-valor persistente e incorporável, escrito inteiramente em Go. Ele roda dentro do processo da sua aplicação, em vez de funcionar como um servidor separado, e é o mecanismo de armazenamento por baixo do banco de dados de grafos Dgraph.
O Badger é baseado em uma árvore LSM com um log de valores separado, seguindo o design WiscKey, que mantém os valores fora do índice de chaves para reduzir a amplificação de escrita em SSDs. Ele oferece transações ACID concorrentes com isolamento de snapshot serializável, iteradores com varreduras por prefixo e intervalo de chaves, versões por chave e TTL. Como não depende de Cgo, pode ser compilado com a toolchain padrão do Go.
O projeto também inclui uma CLI para operações como backup e restauração offline e está disponível como módulo Go em github.com/dgraph-io/badger/v4.
Recursos principais
- 01Banco chave-valor incorporável, escrito em Go puro e sem dependência de Cgo.
- 02Transações ACID concorrentes com isolamento de snapshot serializável.
- 03Separação entre chaves e valores, com um log de valores para reduzir a amplificação de escrita em SSDs.
- 04Iteradores com varreduras por prefixo e intervalo de chaves, além de acesso a várias versões de cada chave.
- 05Suporte a TTL para expiração automática de chaves.
- 06Ferramenta de linha de comando para backup e restauração offline.
Casos de uso
- Incorporar um armazenamento local persistente e rápido em um serviço Go ou ferramenta CLI.
- Servir como camada de armazenamento para um sistema distribuído ou banco de dados de grafos.
- Criar um log Raft ou armazenamento de metadados em aplicações Go.
- Armazenar grandes conjuntos de dados em SSDs quando a velocidade de leitura e escrita é importante.
Início rápido
- 1
Instale a biblioteca no seu projeto Go
go get github.com/dgraph-io/badger/v4 - 2
Instale a ferramenta de linha de comando Badger a partir de um repositório clonado
cd badger go install .
Antes de usar
- Requer Go 1.23 ou superior.
Tópicos
Perguntas frequentes
- O que é badger?
- Banco de dados chave-valor persistente e incorporável, escrito em Go puro, com transações ACID e design otimizado para SSDs. BadgerDB é um banco chave-valor persistente e incorporável, escrito inteiramente em Go. Ele roda dentro do processo da sua aplicação, em vez de funcionar como um servidor separado, e é o mecanismo de armazenamento por baixo do banco de dados de grafos Dgraph.
- badger é gratuito? Qual é a licença?
- badger é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- badger ainda é mantido?
- Manutenção ativa. O último commit de badger foi em 20 de out. de 2026.
- Para que posso usar badger?
- Incorporar um armazenamento local persistente e rápido em um serviço Go ou ferramenta CLI. Servir como camada de armazenamento para um sistema distribuído ou banco de dados de grafos. Criar um log Raft ou armazenamento de metadados em aplicações Go. Armazenar grandes conjuntos de dados em SSDs quando a velocidade de leitura e escrita é importante.
- Como instalar badger?
- Instale a biblioteca no seu projeto Go: go get github.com/dgraph-io/badger/v4 Instale a ferramenta de linha de comando Badger a partir de um repositório clonado: cd badger go install .
- Onde consigo badger?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/dgraph-io/badger
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Armazenamento distribuído e confiável de chave-valor para os dados mais críticos de sistemas distribuídos, baseado no consenso Raft e com API gRPC.
ORM completo para Go que mapeia structs para tabelas de banco de dados e oferece suporte a associações, hooks, transações e migrações.
CLI e biblioteca Go para gerenciar alterações no schema do banco de dados com arquivos SQL versionados ou funções Go.
Um compilador SQL que lê suas consultas e gera código type-safe em Go, Kotlin, Python e TypeScript.
Banco de dados relacional distribuído, leve e tolerante a falhas, baseado em SQLite e replicado entre nós por consenso Raft.