Projet open source
tursodatabase/turso avatar
tursodatabase/turso

Turso Database : une base de données SQL compatible SQLite en Rust

Une base de données SQL dans Rust : compatible SQLite, parlant désormais aussi Postgres (expérimental). Le LLVM des bases de données.

24 287 étoiles1 346 forksRustMIT
GitHub

En bref

De quoi s’agit-il ?
Une base de données SQL en processus, écrite en Rust, compatible SQLite, avec un frontend Postgres expérimental et une machine virtuelle au cœur.
À qui s’adresse-t-il ?
Turso Database est en développement actif vers une version 1.0, avec la compatibilité SQLite comme exigence stricte et le support Postgres encore expérimental. Le projet, sous licence MIT, est ouvert aux contributions et fonctionne déjà en production dans plusieurs organisations.
Puis-je l’utiliser commercialement ?
Oui. MIT est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
Est-il encore maintenu ?
Oui. Le dépôt a reçu de nouveaux commits au cours des dernières 24 heures.
En quel langage est-il écrit ?
Principalement Rust, d’après les statistiques de langage de GitHub.

Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 15 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.

ANALYSE OPEN SOURCE APPROFONDIE

Qu'est-ce que Turso Database ?

Turso Database est une base de données SQL en processus écrite en Rust. Elle est compatible avec SQLite au niveau du dialecte SQL, du format de fichier et de l'API C, et peut ouvrir les fichiers de base de données SQLite existants tels quels. Le README indique qu'elle fonctionne en production aujourd'hui dans plusieurs organisations. Elle dispose également d'un frontend Postgres, actuellement expérimental, qui parle le dialecte et le protocole filaire Postgres. Le moteur central est partagé sous la couche SQL.

La VDBE et le « LLVM des bases de données »

Comme SQLite, Turso compile SQL en bytecode pour une machine virtuelle appelée VDBE, puis exécute ce bytecode. Cette conception permet à un seul moteur d'héberger plusieurs dialectes SQL. SQLite est le frontend principal, et Postgres est un deuxième frontend avec son propre dialecte et protocole. L'objectif déclaré du projet est d'être pour les bases de données ce que LLVM est pour les compilateurs : un noyau moderne et fiable avec de nombreux frontends compilés dessus. Le README note que le bytecode est suffisamment général pour exécuter Doom.

Fonctionnalités et feuille de route

Le README liste la compatibilité SQLite, BEGIN CONCURRENT pour améliorer le débit d'écriture avec MVCC, la capture de données de changement, le support multilingue pour Go, JavaScript, Java, .NET, Python, Rust et WebAssembly, les E/S asynchrones sur Linux avec io_uring, le support multiplateforme pour Linux, macOS, Windows et les navigateurs, le support vectoriel pour la recherche exacte et la manipulation, et une gestion de schéma améliorée. Les fonctionnalités expérimentales incluent la compatibilité Postgres, le chiffrement au repos, le calcul incrémental avec DBSP, la recherche plein texte via tantivy, et la coordination WAL multi-processus. Sur la feuille de route figure l'indexation vectorielle pour la recherche approximative rapide.

Pour commencer · tursodatabase turso

Le README documente un installateur en ligne de commande qui récupère la dernière version, puis lance le shell interactif avec `tursodb`. Le shell se connecte par défaut à une base de données en mémoire transitoire et prend en charge `.open` pour rouvrir une base persistante. Le même binaire peut être construit à partir des sources avec `cargo run`, et des cibles Docker make sont fournies. Des liaisons de langage sont disponibles pour Rust (`cargo add turso`), JavaScript (`npm i @tursodatabase/database`), Python (`uv pip install pyturso`), Go (`go get turso.tech/database/tursogo`) et Java via JDBC ; l'utilisation .NET est montrée avec `TursoConnection`. Pour les extraits exacts, voir le README.

Frontend Postgres expérimental et autres fonctionnalités expérimentales

Le frontend Postgres est marqué expérimental et implémente le dialecte SQL et le protocole filaire Postgres. Il est additif : SQLite reste le frontend original et principal. Les autres fonctionnalités expérimentales sont le chiffrement au repos, le calcul incrémental avec DBSP, la recherche plein texte propulsée par la bibliothèque tantivy, et la coordination WAL multi-processus via un sidecar `.tshm`. Le README pointe vers une référence de compatibilité pour les détails Postgres. Aucune de ces fonctionnalités ne comporte de garantie de stabilité ; elles sont explicitement listées comme expérimentales.

Mode serveur MCP

Le CLI Turso inclut un serveur Model Context Protocol, démarré avec `tursodb your_database.db --mcp`. Il expose 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 pour Claude Code, Claude Desktop et Cursor sont dans le README, ainsi que des exemples JSON-RPC directs sur stdin/stdout. Le serveur est conçu pour que les assistants IA interagissent avec les bases de données.

Statut de production, tests et licence

La FAQ indique que Turso est utilisé en production par Turso Cloud, l'assistant IA Kin et Spice.ai, et qu'il est testé avec une suite de tests de simulation déterministe native et Antithesis. Le projet n'a pas atteint la version 1.0, et la compatibilité SQLite n'est pas encore à 100 %, les différences étant suivies dans COMPAT.md. La compatibilité complète est une exigence pour 1.0. Le projet est sous licence MIT, et les contributions sont explicitement sous licence MIT sauf mention contraire. Le texte de licence comprend la clause de non-garantie standard et ne traite ni du support ni des garanties de sécurité.

Conclusion éditoriale

Turso Database est en développement actif vers une version 1.0, avec la compatibilité SQLite comme exigence stricte et le support Postgres encore expérimental. Le projet, sous licence MIT, est ouvert aux contributions et fonctionne déjà en production dans plusieurs organisations.

Sources officielles

  1. Official README
  2. Project repository
  3. Release notes
Notes de la communauté

Notes de la communauté