- Limbo é um projeto experimental que reimplementa o SQLite em Rust para oferecer segurança de memória
- Gostaram da natureza embarcada do SQLite, mas queriam um modelo de desenvolvimento mais aberto, o que levou ao início do projeto libSQL
- Motivo para fazer um fork do SQLite: facilita a integração de novos recursos e permite manter compatibilidade com o código existente
- Desvantagem: a suíte de testes do SQLite é proprietária e escrita em C, o que dificulta a evolução do código
- Nova abordagem
- Ao adicionar recursos de busca vetorial, encontraram os limites do SQLite
- Reescrever o SQLite do zero para manter compatibilidade e, ao mesmo tempo, explorar a possibilidade de adicionar recursos de forma mais agressiva
- Próximos passos
- Transformar o Limbo em um projeto oficial da Turso
- Objetivo de construir uma nova arquitetura que ofereça segurança de memória mantendo a mesma confiabilidade do SQLite
- Desafiando a confiabilidade do SQLite
- Alta confiabilidade garantida por meio de testes de simulação determinística (DST)
- Em parceria com a Antithesis, uso de um framework de DST em nível de sistema
- Estado atual
- I/O totalmente assíncrono: o Limbo tem um design totalmente assíncrono, resolvendo os problemas da interface síncrona do SQLite
- Projetado para WASM: design pensado para uso em ambientes WASM
- Desempenho: em muitas tarefas, desempenho equivalente ou superior ao do SQLite
- Simplicidade: oferece uma experiência melhor ao remover recursos menos importantes em ambientes modernos
- Informações adicionais
- O Limbo está disponível no GitHub sob licença MIT
- Convida pessoas interessadas em construir bancos de dados embarcados que queiram levar a proposta do SQLite ao próximo nível
4 comentários
É curioso ver um projeto para o qual eu contribuía aparecer no Hacker News haha
Comentários no Hacker News
O SQLite parece ser um projeto que não precisa ser reescrito, devido à qualidade do código e aos testes rigorosos
A discussão de que o SQLite não é "aberto a contribuições" ignora que aceitar contribuições não significa sempre incorporá-las
Houve uma reação negativa ao anúncio inicial do fork de SQLite3 para LibSQL
Para desempenho máximo, deve-se escolher o modo WAL e desativar os bloqueios consultivos POSIX
wal2está no radar do projetoHá comentários de pessoas dizendo que foi a primeira vez que souberam que a suíte de testes do SQLite é proprietária
Não concordam com a lógica da seção sobre "async IO"
Há opiniões de que é um projeto em estágio inicial
Compilando com Fil-C, é possível obter um SQLite com segurança de memória
O SQLite é composto por cerca de 156.000 linhas de código e 92.000 linhas de código de teste
Presume-se que a certificação DO-178B para a variante em Rust não esteja sendo considerada
O nome "Limbo" também foi usado na linguagem pós-C/UNIX do sistema operacional Inferno, da AT&T
O SQLite parece ser um projeto que não precisa ser reescrito por causa da qualidade do código e dos testes rigorosos -> essa avaliação do sqlite é realmente invejável e incrível.
Dizem que segue o processo DO-178B e alcançou 100% de cobertura de código MC/DC.
A história desconhecida do SQLite