O projeto libSQL tenta criar um fork do SGBD SQLite, voltado para a abertura à participação de desenvolvedores da comunidade e promoção de inovações que vão além da finalidade original do SQLite. A razão para a criação do fork é a política rígida do SQLite em relação à aceitação de código externo da comunidade, em face da necessidade de promover melhorias. O código do fork é distribuído sob a licença MIT (SQLite é disponibilizado como domínio público).
Os criadores do fork pretendem manter a compatibilidade com o SQLite principal e manter o mesmo nível de qualidade, preservando o conjunto de cenários de teste e expandindo-o gradualmente à medida que novas inovações são adicionadas. Para o desenvolvimento de novas funcionalidades, é proposta a utilização da linguagem Rust, mantendo, no entanto, a parte básica em linguagem C. Caso a política do projeto principal do SQLite em relação à aceitação de mudanças mude, os desenvolvedores do libSQL pretendem transferir as mudanças acumuladas para o projeto principal e se conectar ao seu desenvolvimento.
Entre as ideias para possível expansão da funcionalidade do SQLite estão mencionadas:
- Integração de ferramentas para a construção de bancos de dados distribuídos, funcionando no nível da própria biblioteca, e não através da replicação de alterações no sistema de arquivos (LiteFS), e sem o desenvolvimento de um produto separado (dqlite, rqlite, ChiselStore).
- Otimização para utilização de APIs assíncronas, como a interface io_uring fornecida pelo kernel Linux.
- Possibilidade de uso do SQLite no kernel Linux, similar ao suporte no kernel da máquina virtual eBPF, para situações em que é necessário manter no kernel conjuntos de dados que não cabem na memória.
- Suporte a funções definidas pelo usuário, escritas em qualquer linguagem de programação e compiladas em código intermediário WebAssembly.
Fonte: opennet.ru
