Sobre o projeto
Turso Database é um banco de dados SQL in-process implementado em Rust e compatível com SQLite, desenvolvido pela equipe Turso sob a licença MIT. O README o descreve como um motor usado em produção que também funciona como uma máquina virtual: assim como o SQLite, ele compila SQL em bytecode para uma VM chamada VDBE e executa esse bytecode. Esse design permite que um único núcleo hospede vários dialetos SQL, com SQLite como o frontend primário e PostgreSQL adicionado como um frontend experimental com seu próprio dialeto e protocolo de fio. O projeto enquadra sua ambição como sendo "o LLVM de bancos de dados" — um núcleo moderno com muitos frontends compilados nele.
Capacidades principais descritas:
- Compatibilidade com SQLite no nível do dialeto SQL, formato de arquivo e API C, acompanhando a versão 3.50.4 do SQLite, com um documento COMPAT rastreando as diferenças restantes. Arquivos de banco de dados SQLite existentes são ditos funcionar como estão.
- BEGIN CONCURRENT para melhorar o throughput de escrita usando controle de concorrência de múltiplas versões (MVCC).
- Captura de dados de mudança (CDC) para rastrear mudanças no banco de dados em tempo real.
- Bindings de linguagem para Go, JavaScript, Java, .NET, Python, Rust e WebAssembly, com instalação via crates.io, npm, PyPI, Maven Central e módulos Go.
- I/O assíncrono no Linux por meio de io_uring.
- Suporte multiplataforma para Linux, macOS, Windows e navegadores via WebAssembly.
- Suporte a vetores, incluindo busca exata e manipulação de vetores.
- Gerenciamento de esquema aprimorado com suporte estendido a ALTER e mudanças de esquema mais rápidas.
Recursos experimentais listados incluem compatibilidade com PostgreSQL para dialeto SQL e protocolo de fio, criptografia em repouso, computação incremental usando DBSP para manutenção de vista incremental e assinaturas de consulta, busca de texto completo alimentada pela biblioteca tantivy, e coordenação WAL multi-processo por meio de um sidecar .tshm. Indexação de vetores para busca aproximada está no roadmap.
O material de início rápido cobre um shell de linha de comando (tursodb) instalado por meio de um script de instalador de shell, construção a partir do código-fonte com cargo, e targets Docker via make. Ele mostra trechos de exemplo curtos para Rust, JavaScript, Python, Go, .NET e Java, incluindo integração JDBC para Java.
A CLI também incorpora um servidor de Protocolo de Contexto de Modelo (MCP), iniciado com a flag --mcp, que permite que assistentes de IA interajam com bancos de dados. O README documenta nove ferramentas: open_database, current_database, list_tables, describe_table, execute_query, insert_data, update_data, delete_data e schema_change. Exemplos de configuração são fornecidos para Claude Code, Claude Desktop e Cursor, juntamente com o uso direto de JSON-RPC via stdin/stdout.
Confiabilidade e status: o README afirma que Turso alimenta aplicativos de produção em várias organizações e é testado com ferramentas, incluindo uma suíte de testes de simulação determinística nativa e Antithesis, enquanto observa que o projeto não atingiu 1.0 e que alguns recursos são explicitamente experimentais, recomendando backups independentes até então. Ele distingue Turso Database do fork libSQL anterior, descrevendo a reescrita em Rust como a direção pretendida, enquanto ambos estão em produção. O repositório também lista publicações acadêmicas e parceiros do projeto, e aceita contribuições sob a licença MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.