tursodatabase/tursoPublic

A SQL database in Rust: SQLite-compatible, now also speaking Postgres (experimental). The LLVM of databases.

AI summary: An edge-hosted, globally distributed SQL database built on libSQL, compatible with SQLite.

Stars
24.5K
+66 today
Forks
1.4K
Watchers
102
Open issues
887
Open PRs
167
Contributors
~333
Commits
20.7K
Branches
771

RustMITCreated Aug 26, 2023Last push 1d agoLatest release v0.8.1+147 stars this week+385 this month

Quick answers

What is turso?
An edge-hosted, globally distributed SQL database built on libSQL, compatible with SQLite.
What does turso do?
Turso is a highly performant, in-process SQL database engineered to bring data physically closer to application users for ultra-low latency execution. Built natively in Rust as a sophisticated fork of SQLite (libSQL), it merges the unparalleled developer experience of a local database with the immense scale of a globally distributed system. Turso automatically and transparently replicates data across dozens of edge regions, ensuring read queries execute in single-digit milliseconds. Furthermore, it acts as an extensible virtual machine, successfully hosting multiple SQL dialects including an experimental Postgres frontend over its unified core.
Who is turso for?
Turso is ideal for full-stack developers, edge computing engineers, and systems architects aiming to build globally responsive applications. It requires familiarity with SQL concepts and modern serverless or edge deployment architectures.
How do I get started with turso?
Please refer to the official repository bindings to install the SDK for your preferred language.
How popular is turso on GitHub?
tursodatabase/turso has 24,527 stars and 1,391 forks on GitHub, and gained 147 stars in the last 7 days.
What license does turso use?
tursodatabase/turso is released under the MIT license.

Star history

since Jul 29, 2026
010K20KJul 2026Aug 2026Sep 2026Oct 2026
24.5K stars as of Oct 3, 2026. Measured daily since Jul 29, 2026; GitHub no longer exposes earlier star timestamps.

Contribution activity

commits per day, last 52 weeks
OctNovDecJanFebMarAprMayJunJulAugSepMonWedFri2025-10-05: 12 commits2025-10-06: 43 commits2025-10-07: 61 commits2025-10-08: 29 commits2025-10-09: 53 commits2025-10-10: 19 commits2025-10-11: 8 commits2025-10-12: 18 commits2025-10-13: 50 commits2025-10-14: 51 commits2025-10-15: 26 commits2025-10-16: 46 commits2025-10-17: 10 commits2025-10-18: 24 commits2025-10-19: 7 commits2025-10-20: 11 commits2025-10-21: 69 commits2025-10-22: 33 commits2025-10-23: 19 commits2025-10-24: 20 commits2025-10-25: 8 commits2025-10-26: 16 commits2025-10-27: 69 commits2025-10-28: 24 commits2025-10-29: 31 commits2025-10-30: 9 commits2025-10-31: 17 commits2025-11-01: 19 commits2025-11-02: 12 commits2025-11-03: 10 commits2025-11-04: 8 commits2025-11-05: 22 commits2025-11-06: 14 commits2025-11-07: 4 commits2025-11-08: 7 commits2025-11-09: 12 commits2025-11-10: 30 commits2025-11-11: 9 commits2025-11-12: 26 commits2025-11-13: 14 commits2025-11-14: 9 commits2025-11-15: 2 commits2025-11-16: 13 commits2025-11-17: 12 commits2025-11-18: 39 commits2025-11-19: 46 commits2025-11-20: 27 commits2025-11-21: 14 commits2025-11-22: 4 commits2025-11-23: 37 commits2025-11-24: 20 commits2025-11-25: 19 commits2025-11-26: 33 commits2025-11-27: 29 commits2025-11-28: 28 commits2025-11-29: 7 commits2025-11-30: 11 commits2025-12-01: 19 commits2025-12-02: 39 commits2025-12-03: 56 commits2025-12-04: 42 commits2025-12-05: 41 commits2025-12-06: 13 commits2025-12-07: 8 commits2025-12-08: 45 commits2025-12-09: 37 commits2025-12-10: 72 commits2025-12-11: 52 commits2025-12-12: 20 commits2025-12-13: 17 commits2025-12-14: 14 commits2025-12-15: 49 commits2025-12-16: 32 commits2025-12-17: 57 commits2025-12-18: 60 commits2025-12-19: 40 commits2025-12-20: 12 commits2025-12-21: 35 commits2025-12-22: 44 commits2025-12-23: 68 commits2025-12-24: 21 commits2025-12-25: 22 commits2025-12-26: 48 commits2025-12-27: 17 commits2025-12-28: 22 commits2025-12-29: 18 commits2025-12-30: 49 commits2025-12-31: 17 commits2026-01-01: 20 commits2026-01-02: 49 commits2026-01-03: 69 commits2026-01-04: 22 commits2026-01-05: 66 commits2026-01-06: 39 commits2026-01-07: 65 commits2026-01-08: 66 commits2026-01-09: 71 commits2026-01-10: 25 commits2026-01-11: 29 commits2026-01-12: 28 commits2026-01-13: 67 commits2026-01-14: 76 commits2026-01-15: 69 commits2026-01-16: 73 commits2026-01-17: 40 commits2026-01-18: 97 commits2026-01-19: 135 commits2026-01-20: 65 commits2026-01-21: 68 commits2026-01-22: 91 commits2026-01-23: 56 commits2026-01-24: 34 commits2026-01-25: 24 commits2026-01-26: 64 commits2026-01-27: 43 commits2026-01-28: 64 commits2026-01-29: 32 commits2026-01-30: 29 commits2026-01-31: 19 commits2026-02-01: 10 commits2026-02-02: 17 commits2026-02-03: 13 commits2026-02-04: 43 commits2026-02-05: 51 commits2026-02-06: 59 commits2026-02-07: 47 commits2026-02-08: 8 commits2026-02-09: 86 commits2026-02-10: 72 commits2026-02-11: 65 commits2026-02-12: 79 commits2026-02-13: 74 commits2026-02-14: 57 commits2026-02-15: 77 commits2026-02-16: 125 commits2026-02-17: 70 commits2026-02-18: 93 commits2026-02-19: 119 commits2026-02-20: 52 commits2026-02-21: 62 commits2026-02-22: 14 commits2026-02-23: 62 commits2026-02-24: 103 commits2026-02-25: 67 commits2026-02-26: 82 commits2026-02-27: 54 commits2026-02-28: 3 commits2026-03-01: 3 commits2026-03-02: 21 commits2026-03-03: 31 commits2026-03-04: 21 commits2026-03-05: 19 commits2026-03-06: 35 commits2026-03-07: 35 commits2026-03-08: 39 commits2026-03-09: 34 commits2026-03-10: 43 commits2026-03-11: 106 commits2026-03-12: 41 commits2026-03-13: 55 commits2026-03-14: 40 commits2026-03-15: 25 commits2026-03-16: 47 commits2026-03-17: 29 commits2026-03-18: 7 commits2026-03-19: 6 commits2026-03-20: 9 commits2026-03-21: 5 commits2026-03-22: 5 commits2026-03-23: 22 commits2026-03-24: 28 commits2026-03-25: 22 commits2026-03-26: 30 commits2026-03-27: 27 commits2026-03-28: 15 commits2026-03-29: 5 commits2026-03-30: 31 commits2026-03-31: 36 commits2026-04-01: 34 commits2026-04-02: 26 commits2026-04-03: 8 commits2026-04-04: 11 commits2026-04-05: 1 commit2026-04-06: 31 commits2026-04-07: 40 commits2026-04-08: 27 commits2026-04-09: 54 commits2026-04-10: 27 commits2026-04-11: 2 commits2026-04-12: 3 commits2026-04-13: 30 commits2026-04-14: 33 commits2026-04-15: 23 commits2026-04-16: 37 commits2026-04-17: 32 commits2026-04-18: 15 commits2026-04-19: 24 commits2026-04-20: 29 commits2026-04-21: 69 commits2026-04-22: 59 commits2026-04-23: 29 commits2026-04-24: 33 commits2026-04-25: 4 commits2026-04-26: 20 commits2026-04-27: 19 commits2026-04-28: 34 commits2026-04-29: 36 commits2026-04-30: 22 commits2026-05-01: 16 commits2026-05-02: 11 commits2026-05-03: 11 commits2026-05-04: 39 commits2026-05-05: 21 commits2026-05-06: 13 commits2026-05-07: 27 commits2026-05-08: 13 commits2026-05-09: 3 commits2026-05-10: 25 commits2026-05-11: 29 commits2026-05-12: 28 commits2026-05-13: 27 commits2026-05-14: 25 commits2026-05-15: 27 commits2026-05-16: 13 commits2026-05-17: 1 commit2026-05-18: 25 commits2026-05-19: 36 commits2026-05-20: 35 commits2026-05-21: 16 commits2026-05-22: 17 commits2026-05-23: 0 commits2026-05-24: 7 commits2026-05-25: 20 commits2026-05-26: 24 commits2026-05-27: 32 commits2026-05-28: 32 commits2026-05-29: 15 commits2026-05-30: 0 commits2026-05-31: 1 commit2026-06-01: 15 commits2026-06-02: 30 commits2026-06-03: 9 commits2026-06-04: 25 commits2026-06-05: 24 commits2026-06-06: 2 commits2026-06-07: 5 commits2026-06-08: 30 commits2026-06-09: 37 commits2026-06-10: 27 commits2026-06-11: 46 commits2026-06-12: 21 commits2026-06-13: 4 commits2026-06-14: 3 commits2026-06-15: 21 commits2026-06-16: 7 commits2026-06-17: 25 commits2026-06-18: 18 commits2026-06-19: 19 commits2026-06-20: 4 commits2026-06-21: 4 commits2026-06-22: 22 commits2026-06-23: 36 commits2026-06-24: 27 commits2026-06-25: 40 commits2026-06-26: 13 commits2026-06-27: 9 commits2026-06-28: 8 commits2026-06-29: 26 commits2026-06-30: 30 commits2026-07-01: 27 commits2026-07-02: 41 commits2026-07-03: 43 commits2026-07-04: 3 commits2026-07-05: 4 commits2026-07-06: 21 commits2026-07-07: 27 commits2026-07-08: 25 commits2026-07-09: 21 commits2026-07-10: 19 commits2026-07-11: 0 commits2026-07-12: 16 commits2026-07-13: 35 commits2026-07-14: 18 commits2026-07-15: 29 commits2026-07-16: 38 commits2026-07-17: 57 commits2026-07-18: 8 commits2026-07-19: 6 commits2026-07-20: 33 commits2026-07-21: 24 commits2026-07-22: 39 commits2026-07-23: 23 commits2026-07-24: 27 commits2026-07-25: 9 commits2026-07-26: 21 commits2026-07-27: 42 commits2026-07-28: 54 commits2026-07-29: 44 commits2026-07-30: 67 commits2026-07-31: 44 commits2026-08-01: 1 commit2026-08-02: 2 commits2026-08-03: 28 commits2026-08-04: 62 commits2026-08-05: 33 commits2026-08-06: 53 commits2026-08-07: 41 commits2026-08-08: 2 commits2026-08-09: 3 commits2026-08-10: 40 commits2026-08-11: 22 commits2026-08-12: 20 commits2026-08-13: 27 commits2026-08-14: 3 commits2026-08-15: 0 commits2026-08-16: 0 commits2026-08-17: 10 commits2026-08-18: 18 commits2026-08-19: 14 commits2026-08-20: 28 commits2026-08-21: 19 commits2026-08-22: 4 commits2026-08-23: 5 commits2026-08-24: 35 commits2026-08-25: 15 commits2026-08-26: 25 commits2026-08-27: 22 commits2026-08-28: 30 commits2026-08-29: 13 commits2026-08-30: 18 commits2026-08-31: 26 commits2026-09-01: 28 commits2026-09-02: 19 commits2026-09-03: 22 commits2026-09-04: 22 commits2026-09-05: 121 commits2026-09-06: 34 commits2026-09-07: 34 commits2026-09-08: 34 commits2026-09-09: 42 commits2026-09-10: 55 commits2026-09-11: 45 commits2026-09-12: 3 commits2026-09-13: 35 commits2026-09-14: 53 commits2026-09-15: 56 commits2026-09-16: 33 commits2026-09-17: 55 commits2026-09-18: 52 commits2026-09-19: 7 commits2026-09-20: 6 commits2026-09-21: 33 commits2026-09-22: 39 commits2026-09-23: 40 commits2026-09-24: 28 commits2026-09-25: 4 commits2026-09-26: 1 commit2026-09-27: 3 commits2026-09-28: 12 commits2026-09-29: 7 commits2026-09-30: 1 commit2026-10-01: 0 commits2026-10-02: 0 commits2026-10-03: 0 commits
11,033 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Widely adopted

    24,527 stars

  • Very active

    11,033 commits in 52 weeks

  • Community-driven

    ~333 contributors

  • Permissive license

    MIT

  • Continuous integration

    Automated checks passing

  • Repeat trending

    3 trending appearances

What turso does

Turso is a highly performant, in-process SQL database engineered to bring data physically closer to application users for ultra-low latency execution. Built natively in Rust as a sophisticated fork of SQLite (libSQL), it merges the unparalleled developer experience of a local database with the immense scale of a globally distributed system. Turso automatically and transparently replicates data across dozens of edge regions, ensuring read queries execute in single-digit milliseconds. Furthermore, it acts as an extensible virtual machine, successfully hosting multiple SQL dialects including an experimental Postgres frontend over its unified core.

Turso is ideal for full-stack developers, edge computing engineers, and systems architects aiming to build globally responsive applications. It requires familiarity with SQL concepts and modern serverless or edge deployment architectures.

  • Global edge replication: Automatically distributes data across numerous geographic regions to guarantee minimum latency for user queries.
  • SQLite and Postgres compatibility: Supports standard SQLite file formats and C APIs while introducing a fully functional Postgres frontend.
  • Multi-version concurrency control: Implements BEGIN CONCURRENT logic to significantly improve write throughput and eliminate database locking issues.
  • Change data capture: Provides real-time streaming capabilities to track and react to database changes across the distributed network.
  • Extensive language bindings: Offers robust, official support across multiple languages including Rust, Go, JavaScript, Python, and Java.

Where teams use it

Edge Computing Applications

Developers deploy Turso alongside serverless edge functions (like Cloudflare Workers) to execute lightning-fast database reads without cross-continent roundtrips.

Global E-commerce Platforms

Retail architectures utilize the automatic edge replication to serve product catalogs instantly to users regardless of their geographic location.

Real-time Analytics Dashboards

Data teams leverage the Change Data Capture (CDC) feature to stream database mutations directly into live, interactive user dashboards.

Embedded Desktop Applications

Software engineers use the local libSQL core to embed a robust, SQLite-compatible database directly into cross-platform Rust applications.

Getting started: Please refer to the official repository bindings to install the SDK for your preferred language.

README

main branch

Turso Database

Turso Database

An in-process SQL database, compatible with SQLite, and now with a Postgres frontend too.

Crate NPM PyPI Maven Central NuGet

Chat with the Core Developers on Discord

Chat with other users of Turso (and Turso Cloud) on Discord


About

Turso is an in-process SQL database written in Rust, compatible with SQLite. It runs in production today at multiple organizations.

Turso is also a virtual machine. Like SQLite, it compiles SQL into bytecode for that machine, the VDBE, and then runs the bytecode. That design is what lets one engine host more than one SQL dialect. SQLite is the first and primary frontend that compiles to it, and Postgres is now a frontend of its own, with its own dialect and wire protocol. More will follow. Our goal is to be for databases what LLVM is to compilers, with one modern and reliable core, and many frontends compiled down onto it.

How general is that core? General enough to run Doom on it.

See the FAQ for where the project stands on its way to 1.0.

Features and Roadmap

  • SQLite compatibility for SQL dialect, file formats, and the C API, tracking SQLite version 3.50.4 [see document for details]
  • BEGIN CONCURRENT for improved write throughput using multi-version concurrency control (MVCC).
  • Change data capture (CDC) for real-time tracking of database changes.
  • Multi-language support for
  • 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 ALTER support and faster schema changes.

The database has the following experimental features:

  • Postgres compatibility for SQL dialect and wire protocol, see the see compatibility reference for details.
  • 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 .tshm sidecar for cross-process WAL readers and writers.

The following features are on our current roadmap:

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

You can also build and run the latest development version with:

cargo run

If you like docker, we got you covered. Simply run this in the root folder:

make docker-cli-build && \
make docker-cli-run
🦀 Rust
cargo add turso

Example usage:

let db = Builder::new_local("sqlite.db").build().await?;
let conn = db.connect()?;

let res = conn.query("SELECT * FROM users", ()).await?;
✨ JavaScript
npm i @tursodatabase/database

Example usage:

import { connect } from '@tursodatabase/database';

const db = await connect('sqlite.db');
const stmt = db.prepare('SELECT * FROM users');
const users = stmt.all();
console.log(users);
🐍 Python
uv pip install pyturso

Example usage:

import turso

con = turso.connect("sqlite.db")
cur = con.cursor()
res = cur.execute("SELECT * FROM users")
print(res.fetchone())
🦫 Go
go get turso.tech/database/tursogo
go install turso.tech/database/tursogo

Example usage:

import (
    "database/sql"
    _ "turso.tech/database/tursogo"
)

conn, _ = sql.Open("turso", "sqlite.db")
defer conn.Close()

stmt, _ := conn.Prepare("select * from users")
defer stmt.Close()

rows, _ = stmt.Query()
for rows.Next() {
    var id int
    var username string
    rows.Scan(&id, &username)
    fmt.Printf("User: ID: %d, Username: %s\n", id, username)
}
️#️⃣ .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.

Start the MCP server with:

tursodb your_database.db --mcp

Configuration

Add Turso to your MCP client configuration:

{
  "mcpServers": {
    "turso": {
      "command": "/path/to/.turso/tursodb",
      "args": ["/path/to/your/database.db", "--mcp"]
    }
  }
}

Available Tools

The MCP server provides nine tools for database interaction:

  1. open_database - Open a new database
  2. current_database - Describe the current database
  3. list_tables - List all tables in the database
  4. describe_table - Describe the structure of a specific table
  5. execute_query - Execute read-only SELECT queries
  6. insert_data - Insert new data into tables
  7. update_data - Update existing data in tables
  8. delete_data - Delete data from tables
  9. schema_change - Execute schema modification statements (CREATE TABLE, ALTER TABLE, DROP TABLE)

Once connected, you can ask your AI assistant:

  • "Show me all tables in the database"
  • "What's the schema for the users table?"
  • "Find all posts with more than 100 upvotes"
  • "Insert a new user with name 'Alice' and email '[email protected]'"

MCP Clients

Claude Code

If you're using Claude Code, you can easily connect to your Turso MCP server using the built-in MCP management commands:

Quick Setup
  1. Add the MCP server to Claude Code:

    claude mcp add my-database -- tursodb ./path/to/your/database.db --mcp
  2. Restart Claude Code to activate the connection

  3. Start querying your database through natural language!

Command Breakdown
claude mcp add my-database -- tursodb ./path/to/your/database.db --mcp
#              ↑            ↑       ↑                           ↑
#              |            |       |                           |
#              Name         |       Database path               MCP flag
#                          Separator
  • my-database - Choose any name for your MCP server
  • -- - Required separator between Claude options and your command
  • tursodb - The Turso database CLI
  • ./path/to/your/database.db - Path to your SQLite database file
  • --mcp - Enables MCP server mode
Example Usage
# For a local project database
cd /your/project
claude mcp add my-project-db -- tursodb ./data/app.db --mcp

# For an absolute path
claude mcp add analytics-db -- tursodb /Users/you/databases/analytics.db --mcp

# For a specific project (local scope)
claude mcp add project-db --local -- tursodb ./database.db --mcp
Managing MCP Servers
# List all configured MCP servers
claude mcp list

# Get details about a specific server
claude mcp get my-database

# Remove an MCP server
claude mcp remove my-database
Claude Desktop

For Claude Desktop, add the configuration to your claude_desktop_config.json file:

{
  "mcpServers": {
    "turso": {
      "command": "/path/to/.turso/tursodb",
      "args": ["./path/to/your/database.db", "--mcp"]
    }
  }
}
Cursor

For Cursor, configure MCP in your settings:

  1. Open Cursor settings
  2. Navigate to Extensions → MCP
  3. Add a new server with:
    • Name: turso
    • Command: /path/to/.turso/tursodb
    • Args: ["./path/to/your/database.db", "--mcp"]

Alternatively, you can add it to your Cursor configuration file directly.

Direct JSON-RPC Usage

The MCP server runs as a single process that handles multiple JSON-RPC requests over stdin/stdout. Here's how to interact with it directly:

Example with In-Memory Database
cat << 'EOF' | tursodb --mcp
{"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {"protocolVersion": "2024-11-05", "capabilities": {}, "clientInfo": {"name": "client", "version": "1.0"}}}
{"jsonrpc": "2.0", "id": 2, "method": "tools/call", "params": {"name": "schema_change", "arguments": {"query": "CREATE TABLE users (id INTEGER, name TEXT, email TEXT)"}}}
{"jsonrpc": "2.0", "id": 3, "method": "tools/call", "params": {"name": "list_tables", "arguments": {}}}
{"jsonrpc": "2.0", "id": 4, "method": "tools/call", "params": {"name": "insert_data", "arguments": {"query": "INSERT INTO users VALUES (1, 'Alice', '[email protected]')"}}}
{"jsonrpc": "2.0", "id": 5, "method": "tools/call", "params": {"name": "execute_query", "arguments": {"query": "SELECT * FROM users"}}}
EOF
Example with Existing Database
# Working with an existing database file
cat << 'EOF' | tursodb mydb.db --mcp
{"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {"protocolVersion": "2024-11-05", "capabilities": {}, "clientInfo": {"name": "client", "version": "1.0"}}}
{"jsonrpc": "2.0", "id": 2, "method": "tools/call", "params": {"name": "list_tables", "arguments": {}}}
EOF

Contributing

We'd love to have you contribute to Turso Database! Please check out the contribution guide to get started.

FAQ

Is Turso Database ready for production use?

Yes — Turso powers production applications today at multiple organizations, including Turso Cloud, the Kin AI assistant, and Spice.ai. Reliability is our top priority: Turso is extensively tested by a collection of tools including a native Deterministic Simulation Testing suite and Antithesis.

That said, we have not yet reached 1.0. The project is under active development, and some features are explicitly marked experimental. Our bar is SQLite-level reliability — one of the most rigorously tested pieces of software in the world — and until we declare 1.0, we recommend the same discipline you would apply to any database: keep independent backups.

How compatible is Turso Database with SQLite?

Turso is compatible with SQLite at the SQL dialect, file format, and C API levels, and existing SQLite database files work as-is. We are not at 100% yet, so some differences are still expected — COMPAT.md tracks the details — but the gap is closing quickly, and full compatibility is a requirement for 1.0.

Is Turso a SQLite database or a Postgres database?

It is one engine with more than one SQL frontend. SQLite is the original and primary frontend, with its dialect, its file format, and its C API, and if that is what you use, nothing changes for you. Postgres is a newer and still experimental frontend that speaks the Postgres dialect and wire protocol. They share everything below the SQL: the storage, the concurrency, the query compiler, and the VM. Postgres is additive.

What do you mean by "the LLVM of databases"?

Like SQLite, Turso compiles a query into bytecode for a virtual machine called the VDBE, and runs that bytecode. SQL is just one language that compiles to it. Our goal is to make that VM a general target, with one modern and rigorously tested core, and many database frontends compiled onto it: SQLite, Postgres, and others over time. LLVM did this for compilers, where a stable intermediate representation let many languages share one backend, and we think databases deserve the same. The bytecode is general enough to run Doom, if you want proof.

How is Turso Database different from Turso's libSQL?

Turso Database is a project to build the next evolution of SQLite in Rust, with a strong open contribution focus and features like native async support, vector search, and more. The libSQL project is also an attempt to evolve SQLite in a similar direction, but through a fork rather than a rewrite.

Rewriting SQLite in Rust started as an unassuming experiment, and due to its incredible success, replaces libSQL as our intended direction. Both run in production today: libSQL has been battle-tested for longer, while Turso Database is where our development effort is focused and is evolving rapidly. More details here.

Publications

  • Pekka Enberg, Sasu Tarkoma, Jon Crowcroft Ashwin Rao (2024). Serverless Runtime / Database Co-Design With Asynchronous I/O. In EdgeSys ‘24. [PDF]
  • Pekka Enberg, Sasu Tarkoma, and Ashwin Rao (2023). Towards Database and Serverless Runtime Co-Design. In CoNEXT-SW ’23. [PDF] [Slides]
  • Alperen Keles, Ethan Chou, Harrison Goldstein, Leonidas Lampropoulos (2026). DIRT: Database-Integrated Random Testing. In DBTest '26. [PDF]

License

This project is licensed under the MIT license.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in Turso Database by you, shall be licensed as MIT, without any additional terms or conditions.

Partners

Thanks to all the partners of Turso!

Contributors

Thanks to all the contributors to Turso Database!

View on GitHub

Recent activity

commits and pull requests

Releases and announcements

234 total
  1. 0.8.1 -- 2026-09-29v0.8.1Sep 29, 2026327 downloads

    ## Release Notes ### Updated * ci/dotnet: pin the iOS workload set to 10.0.401 (Pekka Enberg) ## Install turso_cli 0.8.1 ### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tursodatabase/turso/releases/download/v0.8.1/turso_cli-installer.sh | sh ``` ### Install prebuilt binaries via powershell script ```sh powershell -ExecutionPolicy Bypass -c "irm https://github.com/tursodatabase/turso/releases/download/v0.8.1/turso_cli-installer.ps1 | iex" ``` ## Download turso_cli 0.8.1 | File | Platform | Checksum | |--------|----------|----------| | [turso_cli-aarch64-apple-darwin.tar.xz](https://github.com/tursodatabase/turso/releases/download/v0.8.1/turso_cli-aarch64-apple-darwin.tar.xz) | Apple Silicon macOS | [checksum](https://github.com/tursodatabase/turso/releases/download/v0.8.1/turso_cli-aarch64-apple-darwin.tar.xz.sha256) | | [turso_cli-x86_64-apple-darwin.tar.xz](https://github.com/tursodatabase/turso/releases/download/v0.8.1/turso_cli-x86_64-apple-darwin.tar.xz) | Intel macOS | [checksum](https://github.com/tursodatabase/turso/releases/download/v0.8.1/turso_cli-x86_64-apple-darwin.tar.xz.sha256) | | [turso_cli-aar

  2. 0.8.0 -- 2026-09-28v0.8.0Sep 29, 2026212 downloads

    ## Release Notes ### Added * Add rule on helper functions (Mikaël Francoeur) * core/schema: Fix ALTER TABLE ADD/DROP COLUMN dropping column type size parameters (Sergei Iarymov) * testing: add an FTS stress workload and Antithesis singleton (Pedro Muniz) * core/translate: run ADD COLUMN DEFAULT type check only on STRICT tables (Ryan Lin) * perf/fts: add search benchmarks, CPU profiles, and peak heap measurements (Pedro Muniz) * core/vdbe: add AggStep fast paths for float sum, avg and count (Pekka Enberg) * sqlite/conformance: add generated-column coverage from the issue backlog (Glauber Costa) * simulator: add power loss (Pavan Nambi) * add valgrind to the devcontainer (Mikaël Francoeur) * Add aristo intent on partial writes (Mikaël Francoeur) * perf: add join optimizer benchmarks and metrics (Jussi Saurio) * postgres: support WITHIN GROUP aggregates (Joe Sluis) * Add per-seed timeouts to differential_fuzzer CI runs so pathological queries fail faster (Jussi Saurio) * bindings/c: implement sqlite3_strnicmp (Ishwar) * bindings/dotnet: support batches on embedded replicas (Marc-André Moreau) * fts/testing: add FTS workload to concurrent simulator (Preston Thorpe) * serverless/compat

  3. v0.8.0-pre.14v0.8.0-pre.14Sep 28, 2026pre-release107 downloads

    ## Install turso_cli 0.8.0-pre.14 ### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tursodatabase/turso/releases/download/v0.8.0-pre.14/turso_cli-installer.sh | sh ``` ### Install prebuilt binaries via powershell script ```sh powershell -ExecutionPolicy Bypass -c "irm https://github.com/tursodatabase/turso/releases/download/v0.8.0-pre.14/turso_cli-installer.ps1 | iex" ``` ## Download turso_cli 0.8.0-pre.14 | File | Platform | Checksum | |--------|----------|----------| | [turso_cli-aarch64-apple-darwin.tar.xz](https://github.com/tursodatabase/turso/releases/download/v0.8.0-pre.14/turso_cli-aarch64-apple-darwin.tar.xz) | Apple Silicon macOS | [checksum](https://github.com/tursodatabase/turso/releases/download/v0.8.0-pre.14/turso_cli-aarch64-apple-darwin.tar.xz.sha256) | | [turso_cli-x86_64-apple-darwin.tar.xz](https://github.com/tursodatabase/turso/releases/download/v0.8.0-pre.14/turso_cli-x86_64-apple-darwin.tar.xz) | Intel macOS | [checksum](https://github.com/tursodatabase/turso/releases/download/v0.8.0-pre.14/turso_cli-x86_64-apple-darwin.tar.xz.sha256) | | [turso_cli-aarch64-pc-windows-msvc.zip](https://github.

  4. v0.8.0-pre.13v0.8.0-pre.13Sep 25, 2026pre-release164 downloads

    ## Install turso_cli 0.8.0-pre.13 ### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tursodatabase/turso/releases/download/v0.8.0-pre.13/turso_cli-installer.sh | sh ``` ### Install prebuilt binaries via powershell script ```sh powershell -ExecutionPolicy Bypass -c "irm https://github.com/tursodatabase/turso/releases/download/v0.8.0-pre.13/turso_cli-installer.ps1 | iex" ``` ## Download turso_cli 0.8.0-pre.13 | File | Platform | Checksum | |--------|----------|----------| | [turso_cli-aarch64-apple-darwin.tar.xz](https://github.com/tursodatabase/turso/releases/download/v0.8.0-pre.13/turso_cli-aarch64-apple-darwin.tar.xz) | Apple Silicon macOS | [checksum](https://github.com/tursodatabase/turso/releases/download/v0.8.0-pre.13/turso_cli-aarch64-apple-darwin.tar.xz.sha256) | | [turso_cli-x86_64-apple-darwin.tar.xz](https://github.com/tursodatabase/turso/releases/download/v0.8.0-pre.13/turso_cli-x86_64-apple-darwin.tar.xz) | Intel macOS | [checksum](https://github.com/tursodatabase/turso/releases/download/v0.8.0-pre.13/turso_cli-x86_64-apple-darwin.tar.xz.sha256) | | [turso_cli-aarch64-pc-windows-msvc.zip](https://github.

  5. v0.8.0-pre.12v0.8.0-pre.12Sep 22, 2026pre-release165 downloads

    ## Install turso_cli 0.8.0-pre.12 ### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tursodatabase/turso/releases/download/v0.8.0-pre.12/turso_cli-installer.sh | sh ``` ### Install prebuilt binaries via powershell script ```sh powershell -ExecutionPolicy Bypass -c "irm https://github.com/tursodatabase/turso/releases/download/v0.8.0-pre.12/turso_cli-installer.ps1 | iex" ``` ## Download turso_cli 0.8.0-pre.12 | File | Platform | Checksum | |--------|----------|----------| | [turso_cli-aarch64-apple-darwin.tar.xz](https://github.com/tursodatabase/turso/releases/download/v0.8.0-pre.12/turso_cli-aarch64-apple-darwin.tar.xz) | Apple Silicon macOS | [checksum](https://github.com/tursodatabase/turso/releases/download/v0.8.0-pre.12/turso_cli-aarch64-apple-darwin.tar.xz.sha256) | | [turso_cli-x86_64-apple-darwin.tar.xz](https://github.com/tursodatabase/turso/releases/download/v0.8.0-pre.12/turso_cli-x86_64-apple-darwin.tar.xz) | Intel macOS | [checksum](https://github.com/tursodatabase/turso/releases/download/v0.8.0-pre.12/turso_cli-x86_64-apple-darwin.tar.xz.sha256) | | [turso_cli-aarch64-pc-windows-msvc.zip](https://github.

Commits per week

last 52 weeks
5980Week of 2025-10-05: 225 commitsWeek of 2025-10-12: 225 commitsWeek of 2025-10-19: 167 commitsWeek of 2025-10-26: 185 commitsWeek of 2025-11-02: 77 commitsWeek of 2025-11-09: 102 commitsWeek of 2025-11-16: 155 commitsWeek of 2025-11-23: 173 commitsWeek of 2025-11-30: 221 commitsWeek of 2025-12-07: 251 commitsWeek of 2025-12-14: 264 commitsWeek of 2025-12-21: 255 commitsWeek of 2025-12-28: 244 commitsWeek of 2026-01-04: 354 commitsWeek of 2026-01-11: 382 commitsWeek of 2026-01-18: 546 commitsWeek of 2026-01-25: 275 commitsWeek of 2026-02-01: 240 commitsWeek of 2026-02-08: 441 commitsWeek of 2026-02-15: 598 commitsWeek of 2026-02-22: 385 commitsWeek of 2026-03-01: 165 commitsWeek of 2026-03-08: 358 commitsWeek of 2026-03-15: 128 commitsWeek of 2026-03-22: 149 commitsWeek of 2026-03-29: 151 commitsWeek of 2026-04-05: 182 commitsWeek of 2026-04-12: 173 commitsWeek of 2026-04-19: 247 commitsWeek of 2026-04-26: 158 commitsWeek of 2026-05-03: 127 commitsWeek of 2026-05-10: 174 commitsWeek of 2026-05-17: 130 commitsWeek of 2026-05-24: 130 commitsWeek of 2026-05-31: 106 commitsWeek of 2026-06-07: 170 commitsWeek of 2026-06-14: 97 commitsWeek of 2026-06-21: 151 commitsWeek of 2026-06-28: 178 commitsWeek of 2026-07-05: 117 commitsWeek of 2026-07-12: 201 commitsWeek of 2026-07-19: 161 commitsWeek of 2026-07-26: 273 commitsWeek of 2026-08-02: 221 commitsWeek of 2026-08-09: 115 commitsWeek of 2026-08-16: 93 commitsWeek of 2026-08-23: 145 commitsWeek of 2026-08-30: 256 commitsWeek of 2026-09-06: 247 commitsWeek of 2026-09-13: 291 commitsWeek of 2026-09-20: 151 commitsWeek of 2026-09-27: 23 commitsOct 5, 2025Sep 27, 2026
11K commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 40 commitsSun 1:00 — 25 commitsSun 2:00 — 28 commitsSun 3:00 — 15 commitsSun 4:00 — 3 commitsSun 5:00 — 5 commitsSun 6:00 — 11 commitsSun 7:00 — 7 commitsSun 8:00 — 41 commitsSun 9:00 — 66 commitsSun 10:00 — 81 commitsSun 11:00 — 85 commitsSun 12:00 — 98 commitsSun 13:00 — 106 commitsSun 14:00 — 102 commitsSun 15:00 — 91 commitsSun 16:00 — 106 commitsSun 17:00 — 103 commitsSun 18:00 — 99 commitsSun 19:00 — 114 commitsSun 20:00 — 84 commitsSun 21:00 — 100 commitsSun 22:00 — 83 commitsSun 23:00 — 62 commitsMon 0:00 — 37 commitsMon 1:00 — 16 commitsMon 2:00 — 11 commitsMon 3:00 — 4 commitsMon 4:00 — 8 commitsMon 5:00 — 9 commitsMon 6:00 — 7 commitsMon 7:00 — 24 commitsMon 8:00 — 45 commitsMon 9:00 — 104 commitsMon 10:00 — 172 commitsMon 11:00 — 175 commitsMon 12:00 — 224 commitsMon 13:00 — 217 commitsMon 14:00 — 173 commitsMon 15:00 — 176 commitsMon 16:00 — 226 commitsMon 17:00 — 171 commitsMon 18:00 — 154 commitsMon 19:00 — 123 commitsMon 20:00 — 114 commitsMon 21:00 — 136 commitsMon 22:00 — 105 commitsMon 23:00 — 71 commitsTue 0:00 — 36 commitsTue 1:00 — 27 commitsTue 2:00 — 23 commitsTue 3:00 — 18 commitsTue 4:00 — 5 commitsTue 5:00 — 8 commitsTue 6:00 — 15 commitsTue 7:00 — 19 commitsTue 8:00 — 54 commitsTue 9:00 — 103 commitsTue 10:00 — 194 commitsTue 11:00 — 194 commitsTue 12:00 — 201 commitsTue 13:00 — 194 commitsTue 14:00 — 224 commitsTue 15:00 — 200 commitsTue 16:00 — 176 commitsTue 17:00 — 208 commitsTue 18:00 — 149 commitsTue 19:00 — 127 commitsTue 20:00 — 116 commitsTue 21:00 — 116 commitsTue 22:00 — 86 commitsTue 23:00 — 75 commitsWed 0:00 — 68 commitsWed 1:00 — 27 commitsWed 2:00 — 22 commitsWed 3:00 — 13 commitsWed 4:00 — 7 commitsWed 5:00 — 7 commitsWed 6:00 — 4 commitsWed 7:00 — 32 commitsWed 8:00 — 77 commitsWed 9:00 — 173 commitsWed 10:00 — 159 commitsWed 11:00 — 197 commitsWed 12:00 — 226 commitsWed 13:00 — 228 commitsWed 14:00 — 251 commitsWed 15:00 — 214 commitsWed 16:00 — 216 commitsWed 17:00 — 181 commitsWed 18:00 — 128 commitsWed 19:00 — 135 commitsWed 20:00 — 109 commitsWed 21:00 — 95 commitsWed 22:00 — 92 commitsWed 23:00 — 87 commitsThu 0:00 — 49 commitsThu 1:00 — 36 commitsThu 2:00 — 15 commitsThu 3:00 — 9 commitsThu 4:00 — 7 commitsThu 5:00 — 5 commitsThu 6:00 — 5 commitsThu 7:00 — 42 commitsThu 8:00 — 84 commitsThu 9:00 — 161 commitsThu 10:00 — 160 commitsThu 11:00 — 171 commitsThu 12:00 — 218 commitsThu 13:00 — 191 commitsThu 14:00 — 207 commitsThu 15:00 — 262 commitsThu 16:00 — 221 commitsThu 17:00 — 177 commitsThu 18:00 — 152 commitsThu 19:00 — 130 commitsThu 20:00 — 118 commitsThu 21:00 — 85 commitsThu 22:00 — 70 commitsThu 23:00 — 75 commitsFri 0:00 — 47 commitsFri 1:00 — 42 commitsFri 2:00 — 31 commitsFri 3:00 — 21 commitsFri 4:00 — 7 commitsFri 5:00 — 20 commitsFri 6:00 — 11 commitsFri 7:00 — 36 commitsFri 8:00 — 52 commitsFri 9:00 — 100 commitsFri 10:00 — 147 commitsFri 11:00 — 157 commitsFri 12:00 — 201 commitsFri 13:00 — 199 commitsFri 14:00 — 185 commitsFri 15:00 — 186 commitsFri 16:00 — 140 commitsFri 17:00 — 155 commitsFri 18:00 — 113 commitsFri 19:00 — 87 commitsFri 20:00 — 110 commitsFri 21:00 — 94 commitsFri 22:00 — 49 commitsFri 23:00 — 35 commitsSat 0:00 — 34 commitsSat 1:00 — 22 commitsSat 2:00 — 14 commitsSat 3:00 — 3 commitsSat 4:00 — 17 commitsSat 5:00 — 16 commitsSat 6:00 — 19 commitsSat 7:00 — 25 commitsSat 8:00 — 34 commitsSat 9:00 — 101 commitsSat 10:00 — 80 commitsSat 11:00 — 67 commitsSat 12:00 — 99 commitsSat 13:00 — 123 commitsSat 14:00 — 128 commitsSat 15:00 — 109 commitsSat 16:00 — 93 commitsSat 17:00 — 112 commitsSat 18:00 — 91 commitsSat 19:00 — 63 commitsSat 20:00 — 106 commitsSat 21:00 — 69 commitsSat 22:00 — 51 commitsSat 23:00 — 47 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.
DateListRankStars gained
Jun 21, 2026daily#24+21
Jun 20, 2026daily#18+24
Jun 19, 2026daily#18+12
  • ultraworkers/claw-code

    An agent-managed museum exhibit, built in Rust with Gajae-Code / LazyCodex — developed and maintained with no human intervention.

    195.2K stars · Rust

  • farion1231/cc-switch

    A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

    140K stars · Rust

  • openai/codex

    Lightweight coding agent that runs in your terminal

    127.8K stars · Rust

  • denoland/deno

    A modern runtime for JavaScript and TypeScript.

    108.6K stars · Rust

  • ruvnet/RuView

    π RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.

    96.4K stars · Rust

  • oven-sh/bun

    Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one

    96.1K stars · Rust