Sobre el proyecto

Turso Database es una base de datos SQL embebida implementada en Rust y compatible con SQLite, desarrollada por el equipo de Turso bajo la licencia MIT. El archivo README la describe como un motor utilizado en producción que también funciona como máquina virtual: al igual que SQLite, compila SQL a bytecode para una VM llamada VDBE y ejecuta ese bytecode. Este diseño permite que un único motor central aloje múltiples dialectos SQL, con SQLite como interfaz principal y PostgreSQL añadido como interfaz experimental con su propio dialecto y protocolo de comunicación. El proyecto plantea su ambición como "el LLVM de las bases de datos" — un núcleo moderno con muchas interfaces compiladas sobre él. Capacidades principales descritas: - Compatibilidad con SQLite a nivel de dialecto SQL, formato de archivo y API en C, siguiendo la versión 3.50.4 de SQLite, con un documento COMPAT que rastrea las diferencias restantes. Se afirma que los archivos de base de datos SQLite existentes funcionan tal cual. - BEGIN CONCURRENT para mejorar el rendimiento de escritura mediante el uso de control de concurrencia multi-versión (MVCC). - Captura de cambios de datos (CDC) para hacer un seguimiento en tiempo real de los cambios en la base de datos. - Enlaces de lenguaje para Go, JavaScript, Java, .NET, Python, Rust y WebAssembly, instalables mediante crates.io, npm, PyPI, Maven Central y módulos de Go. - E/S asíncrona en Linux mediante io_uring. - Soporte multiplataforma para Linux, macOS, Windows y navegadores mediante WebAssembly. - Soporte para vectores incluyendo búsqueda exacta y manipulación de vectores. - Mejora en la gestión del esquema con soporte extendido de ALTER y cambios de esquema más rápidos. Características experimentales incluyen compatibilidad con PostgreSQL tanto en dialecto como en protocolo de comunicación, cifrado en reposo, computación incremental usando DBSP para mantenimiento de vistas incrementales y suscripciones a consultas, búsqueda de texto completo impulsada por la biblioteca tantivy, y coordinación WAL multiproceso mediante un proceso auxiliar .tshm. El indexado vectorial para búsqueda aproximada está en el roadmap. Los materiales para comenzar incluyen un shell de línea de comandos (tursodb) instalable mediante un script de instalación, construcción desde el código fuente con cargo y objetivos Docker mediante make. Muestra fragmentos cortos de ejemplo para Rust, JavaScript, Python, Go, .NET y Java, incluyendo integración JDBC para Java. La CLI también incorpora un servidor del Protocolo de Contexto de Modelo (MCP), iniciado con la opción --mcp, que permite que asistentes de IA interactúen con bases de datos. El README documenta nueve herramientas: open_database, current_database, list_tables, describe_table, execute_query, insert_data, update_data, delete_data y schema_change. Se proporcionan ejemplos de configuración para Claude Code, Claude Desktop y Cursor, además de uso directo de JSON-RPC a través de stdin/stdout. Confiabilidad y estado: el README indica que Turso impulsa aplicaciones en producción en varias organizaciones y se prueba con herramientas incluyendo un conjunto de pruebas de simulación determinista nativo y Antithesis, señalando que el proyecto aún no ha alcanzado la versión 1.0 y que algunas funciones son explícitamente experimentales, recomendando copias de seguridad independientes hasta entonces. Distingue Turso Database del fork anterior libSQL, describiendo la reescritura en Rust como la dirección deseada mientras ambos se ejecutan en producción. El repositorio también enumera publicaciones académicas y socios del proyecto, y acepta contribuciones bajo la licencia MIT.