Sobre o projeto
Frigolite é uma reimplementação do zero do motor de banco de dados SQLite em Go puro, projetada para fornecer formatos de arquivo compatíveis com SQLite sem exigir CGO, dependências externas ou o CLI sqlite3. Serve como uma solução de banco de dados SQL leve e autocontida para aplicativos Go.
Principais recursos incluem:
- **Implementação Pura em Go**: Zero dependências externas e nenhum CGO, garantindo fácil integração e portabilidade.
- **Compatibilidade com SQLite**: Lê e escreve arquivos `.db` padrão, suportando um subconjunto útil de SQL, incluindo `CREATE`, `INSERT`, `SELECT` (com junções, subconsultas e agregações), `UPDATE` e `DELETE`.
- **Suporte Extensivo a Funções**: Inclui mais de 60 funções SQL, como manipulação de strings, operações numéricas, lógica condicional e utilitários de compressão.
- **Recursos Avançados**: Suporta tabelas virtuais (por exemplo, `generate_series`), mais de 25 PRAGMAs e EXPLAIN/EXPLAIN QUERY PLAN para depuração.
- **Interfaces Flexíveis**: Fornece uma API nativa em Go e um driver padrão `database/sql`, permitindo que os desenvolvedores usem scans tipados, placeholders e instruções preparadas.
- **Shell de Linha de Comando**: Inclui um CLI interativo para gerenciamento direto do banco de dados.
- **Testes Robustos**: Apoiado por 842 testes, incluindo testes de compatibilidade com SQLite automaticamente convertidos, garantindo confiabilidade.
A arquitetura do Frigolite é modular, com pacotes distintos para armazenamento, pager, B-tree, análise de SQL e execução. Ele segue os princípios SOLID e os idiomatismos do Go, tornando-o uma alternativa sustentável e eficiente para projetos que precisam da funcionalidade do SQLite sem a sobrecarga de ligações C.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.