À propos du projet

Turso Database est une base de données SQL intégrée implémentée en Rust et compatible avec SQLite, développée par l'équipe Turso sous licence MIT. Le fichier README la décrit comme un moteur utilisé en production qui fonctionne également comme une machine virtuelle : comme SQLite, il compile le SQL en bytecode pour une machine virtuelle appelée VDBE et exécute ce bytecode. Cette conception permet à un seul moteur central d'héberger plusieurs dialectes SQL, avec SQLite comme frontend principal et PostgreSQL ajouté comme frontend expérimental avec son propre dialecte et protocole réseau. Le projet présente son ambition comme étant « l'LLVM des bases de données » — un noyau moderne avec de nombreux frontends compilés dessus. Capacités principales décrites : - Compatibilité SQLite au niveau du dialecte SQL, du format de fichier et de l'API C, suivant la version 3.50.4 de SQLite, avec un document COMPAT qui suit les différences restantes. Les fichiers de base de données SQLite existants sont supposés fonctionner tels quels. - BEGIN CONCURRENT pour améliorer le débit d'écriture grâce au contrôle de concurrence multi-versions (MVCC). - Capture de changement de données (CDC) pour suivre les modifications de la base de données en temps réel. - Liaisons linguistiques pour Go, JavaScript, Java, .NET, Python, Rust et WebAssembly, avec installation via crates.io, npm, PyPI, Maven Central et modules Go. - E/S asynchrones sur Linux via io_uring. - Support multiplateforme pour Linux, macOS, Windows et navigateurs via WebAssembly. - Support vectoriel incluant la recherche exacte et la manipulation vectorielle. - Gestion améliorée des schémas avec un support étendu de ALTER et des modifications de schéma plus rapides. Fonctionnalités expérimentales incluses comprennent la compatibilité PostgreSQL pour le dialecte SQL et le protocole réseau, le chiffrement au repos, le calcul incrémental utilisant DBSP pour la maintenance des vues incrémentales et les abonnements aux requêtes, la recherche en texte intégral alimentée par la bibliothèque tantivy, ainsi que la coordination WAL multiprocessus via un sidecar .tshm. L'indexation vectorielle pour la recherche approximative figure sur la feuille de route. Les ressources pour commencer couvrent un shell en ligne de commande (tursodb) installé via un script d'installation shell, la construction depuis la source avec cargo, et les cibles Docker via make. Des extraits d'exemple courts sont fournis pour Rust, JavaScript, Python, Go, .NET et Java, y compris l'intégration JDBC pour Java. Le CLI embarque également un serveur Model Context Protocol (MCP), démarré avec le drapeau --mcp, permettant aux assistants IA d'interagir avec les bases de données. Le README documente neuf outils : open_database, current_database, list_tables, describe_table, execute_query, insert_data, update_data, delete_data et schema_change. Des exemples de configuration sont fournis pour Claude Code, Claude Desktop et Cursor, ainsi qu'une utilisation directe JSON-RPC via stdin/stdout. Fiabilité et statut : le README indique que Turso alimente des applications de production chez plusieurs organisations et est testé avec des outils incluant un ensemble de tests de simulation déterministe natif et Antithesis, tout en notant que le projet n'a pas encore atteint la version 1.0 et que certaines fonctionnalités sont explicitement expérimentales, recommandant des sauvegardes indépendantes jusqu'à ce moment-là. Il distingue Turso Database du fork libSQL antérieur, décrivant la réécriture en Rust comme la direction souhaitée tandis que les deux versions s'exécutent en production. Le dépôt liste également des publications académiques et des partenaires du projet, et accepte les contributions sous licence MIT.