On this page
Overview
Turso Database is an in-process SQL database implemented in Rust. It centers on SQLite-compatible SQL, file formats, and the C API while adding MVCC-based BEGIN CONCURRENT, CDC, vector operations, and language bindings, with an experimental Postgres dialect and wire-protocol frontend.
Features and best fit
Based on official documentation; not hands-on tested · Content checked:
Key features
Embed a Rust SQL engine around SQLite compatibility
The project tracks compatibility with SQLite's SQL dialect, file format, and C API while exposing bindings for Rust, JavaScript, Python, Go, Java, .NET, and WebAssembly.
Sources: [2]
Extend beyond SQLite with MVCC, CDC, and vector features
The roadmap and implemented features include BEGIN CONCURRENT for write throughput, change data capture, vector operations, and expanded schema management.
Sources: [2]
Best fit
Fits teams evaluating a modern embedded database while retaining SQLite compatibility
It is relevant when applications want to preserve existing SQLite files or workflows while exploring newer concurrency, async I/O, or multi-language integrations.
Sources: [2]
Before adoption
Separate pre-1.0 stable behavior from explicitly experimental features
The README says the database is used in production but has not reached 1.0. Postgres compatibility, encryption at rest, incremental computation, full-text search, and some other features are explicitly described as experimental.
Sources: [2]
SQLite compatibility is not yet complete and independent backups remain important
Compatibility gaps are still tracked in COMPAT.md, and the project recommends maintaining independent backups while the database remains pre-1.0.
Sources: [2]
Official sources
- [1]tursodatabase/turso repository(2026-09-30)
- [2]Turso Database README(2026-09-30)
- [3]Turso v0.8.1 release(2026-09-30)
- [4]Turso Database MIT license(2026-09-30)
Supplemental curator note
Its distinctive direction is a Rust core that preserves SQLite compatibility while expanding concurrency and language bindings. Because it is pre-1.0 with compatibility gaps and experimental features, evaluate stable and experimental surfaces separately and keep independent backups.
Try it in 3 steps
- 1
Install the JavaScript binding
Add the binding package used by the JavaScript example in the official README.
npm i @tursodatabase/database - 2
Connect to a local database
After importing connect from @tursodatabase/database, open a local SQLite-compatible database file.
const db = await connect('sqlite.db'); - 3
Run a query and read the rows
Prepare a SQL statement and verify that query results can be read from the local database.
const stmt = db.prepare('SELECT * FROM users'); const users = stmt.all();
Growth
Growth trends · Last 30 days
24,451 Stars
Trend data is still being collected.
Development activity
Last 90 days · weekly
- Commits (last 30 days)
- 990
- Open PRs
- 166
Development activity is still being collected.
Built with
Categories and tags
Categories
GitHub data
GitHub dataView detailed GitHub data
GitHub Topics
- database
- embedded-database
- sql
- sqlite3
- webassembly
Related information
Write a related articleShare a guide or use case for this OSS in Markdown. Articles are published after administrator approval.
Explore next
- Grok Build27,154 Stars
1 shared tag(s) · 1 shared category(s) · Same language
Run file edits, shell tools, MCP, and subagents from one Rust coding-agent runtime across TUI, headless, and ACP modes
Rust - Neon23,156 Stars
2 shared tag(s) · 2 shared category(s) · Same language
Decouple PostgreSQL compute from storage for branching and elastic database workflows
Rust - DuckDB41,771 Stars
2 shared tag(s) · 1 shared category(s)
Run analytical SQL directly over CSV, Parquet, and DataFrames inside the application process without a database server
C++ - PostgreSQL22,230 Stars
2 shared tag(s) · 1 shared category(s)
combine SQL transactions, constraints, indexes, and extensible types/functions in an object-relational database engine
C - MySQL Server12,437 Stars
2 shared tag(s) · 1 shared category(s)
Run relational workloads with InnoDB transactions, SQL, replication, and high-availability tooling
C++ - Flyway10,113 Stars
2 shared tag(s) · 1 shared category(s)
manage database schema changes as versioned migration code with tracked history
Java
Report incorrect information
Tell us if any listing information is incorrect or outdated.