Turso (GitHub Repo)
Turso has launched a Rust-based, SQLite-compatible database in beta featuring native async support and experimental vector search.
Deep dive
- SQLite Compatibility: Supports the C API, file format, and SQL dialect of SQLite.
- Modern Features: Includes native async I/O, vector search, and encryption at rest.
- AI Native: Ships with an embedded MCP server, allowing direct query/schema interaction via agents like Claude Code.
- Performance: Provides MVCC (Multi-Version Concurrency Control) through 'BEGIN CONCURRENT' to improve write throughput.
- Beta Status: Explicitly warns that while it powers some production apps (e.g., Kin AI), it is not yet at parity with SQLite-level reliability.
Decoder
- WAL (Write-Ahead Logging): A technique to record changes before applying them to the main database file, enhancing crash recovery and concurrency.
- MVCC: A database concurrency control method that allows multiple versions of data to exist, enabling simultaneous reads and writes without locking.
- MCP Server: A standardized interface that allows AI models to perform tool-based actions on external systems.
Original article
Turso Database
An in-process SQL database, compatible with SQLite.
About
Turso Database is an in-process SQL database written in Rust, compatible with SQLite.
Warning: This software is in BETA. It may still contain bugs and unexpected behavior. Use caution with production data and ensure you have backups.
Features and Roadmap
- SQLite compatibility for SQL dialect, file formats, and the C API
BEGIN CONCURRENTfor improved write throughput using multi-version concurrency control (MVCC).- Change data capture (CDC) for real-time tracking of database changes.
- Multi-language support for
- Go
- JavaScript
- Java
- .NET
- Python
- Rust
- WebAssembly
- Asynchronous I/O support on Linux with
io_uring - Cross-platform support for Linux, macOS, Windows and browsers (through WebAssembly)
- Vector support support including exact search and vector manipulation
- Improved schema management including extended
ALTERsupport and faster schema changes.
The database has the following experimental features:
- Encryption at rest for protecting the data locally.
- Incremental computation using DBSP for incremental view maintenance and query subscriptions.
- Full-Text-Search powered by the awesome tantivy library
- Multi-process WAL coordination via the
.tshmsidecar for cross-process WAL readers and writers.
The following features are on our current roadmap:
- Vector indexing for fast approximate vector search, similar to libSQL vector search.
Getting Started
Please see the Turso Database Manual for more information.
Command Line
You can install the latest turso release with:
curl --proto '=https' --tlsv1.2 -LsSf \
https://github.com/tursodatabase/turso/releases/latest/download/turso_cli-installer.sh | sh
Then launch the interactive shell:
$ tursodb
This will start the Turso interactive shell where you can execute SQL statements:
Turso
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database
turso> CREATE TABLE users (id INT, username TEXT);
turso> INSERT INTO users VALUES (1, 'alice');
turso> INSERT INTO users VALUES (2, 'bob');
turso> SELECT * FROM users;
1|alice
2|bob
Rust
cargo add turso
JavaScript
npm i @tursodatabase/database
Python
uv pip install pyturso
Go
go get turso.tech/database/tursogo
go install turso.tech/database/tursogo
.NET
Example usage:
using Turso;
using var connection = new TursoConnection("Data Source=:memory:");
connection.Open();
connection.ExecuteNonQuery("CREATE TABLE t(a, b)");
var rowsAffected = connection.ExecuteNonQuery("INSERT INTO t(a, b) VALUES (1, 2), (3, 4)");
Console.WriteLine($"RowsAffected: {rowsAffected}");
using var command = connection.CreateCommand();
command.CommandText = "SELECT * FROM t";
using var reader = command.ExecuteReader();
while (reader.Read())
{
var a = reader.GetInt32(0);
var b = reader.GetInt32(1);
Console.WriteLine($"Value1: {a}, Value2: {b}");
}
Java
We integrated Turso Database into JDBC. For detailed instructions on how to use Turso Database with java, please refer to the README.md under bindings/java.
MCP Server Mode
The Turso CLI includes a built-in Model Context Protocol (MCP) server that allows AI assistants to interact with your databases.
FAQ
Is Turso Database ready for production use?
Turso powers production apps today. That includes Turso Cloud, the Kin AI assistant, and Spice.ai. However, it is still under active development and for mission-critical applications, caution is advised.
How is Turso Database different from Turso's libSQL?
Turso Database is a project to build the next evolution of SQLite in Rust. Rewriting SQLite in Rust started as an unassuming experiment, and due to its incredible success, replaces libSQL as our intended direction.
Publications
- Pekka Enberg, Sasu Tarkoma, Jon Crowcroft Ashwin Rao (2024). Serverless Runtime / Database Co-Design With Asynchronous I/O. In EdgeSys ‘24.
- Pekka Enberg, Sasu Tarkoma, and Ashwin Rao (2023). Towards Database and Serverless Runtime Co-Design. In CoNEXT-SW ’23.
- Alperen Keles, Ethan Chou, Harrison Goldstein, Leonidas Lampropoulos (2026). DIRT: Database-Integrated Random Testing. In DBTest '26.
License
This project is licensed under the MIT license.
Fresh dev news, AI-digested daily. Never miss a trend at devoured.fyi