Skip to main content

Welcome to Turso

Turso is an in-process SQL database written in Rust, fully compatible with SQLite. It brings together the simplicity of SQLite with modern capabilities like vector search, full-text search, asynchronous I/O, and multi-language bindings.
Turso is currently in BETA. It may still contain bugs and unexpected behavior. Use caution with production data and ensure you have backups.

Why Turso?

Unlike client-server databases like PostgreSQL or MySQL that communicate over a network, Turso runs inside your application’s memory space. This embedded architecture eliminates network overhead, enabling sub-microsecond read and write latencies.

SQLite Compatible

Drop-in replacement for SQLite with the same file format, SQL dialect, and C API

Written in Rust

Memory-safe, high-performance implementation with no garbage collector pauses

Multi-Language

Native bindings for Rust, JavaScript, Python, Go, and Java

Async I/O

io_uring support on Linux for maximum storage throughput

Vector Search

Built-in vector distance functions for semantic search and AI workloads

Full-Text Search

Powered by Tantivy with BM25 relevance scoring and rich query syntax

Features

Turso targets full SQLite compatibility including the SQL dialect, binary file format, and the C API. Existing SQLite database files can be opened directly in Turso without conversion.
Use Turso from your language of choice:
  • Rustcargo add turso
  • JavaScript/Node.jsnpm i @tursodatabase/database
  • Pythonuv pip install pyturso
  • Gogo get turso.tech/database/tursogo
  • Java — Available via Maven Central
  • WebAssembly — Run in browsers with the WASM build
Create FTS indexes on text columns using CREATE INDEX ... USING fts. Query with BM25 scoring, phrase search, boolean operators, and field boosting.
Enable CDC to automatically log every INSERT, UPDATE, and DELETE to a turso_cdc table. Supports capturing row state before and/or after changes.
Enable multi-version concurrency control with PRAGMA journal_mode = mvcc for snapshot isolation and concurrent write transactions.
Run Turso as a Model Context Protocol server (tursodb mydb.db --mcp) so AI assistants like Claude can query and modify your database through natural language.

Get Started

Quickstart

Get up and running with Turso in under 5 minutes

Installation

Install the CLI and language bindings

CLI Reference

Learn the tursodb interactive shell

SQL Reference

Browse the full SQL language reference

Language Bindings

Rust

Native async Rust API

JavaScript

Node.js and WASM support

Python

DB-API 2.0 compatible

Go

database/sql driver

Java

JDBC integration

How Turso Differs from libSQL

Turso and libSQL are both evolutions of SQLite, but approach it differently:
TursolibSQL
ApproachFull rewrite in RustFork of SQLite (C)
StatusBetaProduction ready
Native asyncYes (io_uring)Limited
Memory safetyYes (Rust)No
The Turso rewrite began as an experiment and has been so successful that it replaces libSQL as Turso’s primary direction. Read the announcement.

Community

Join the community to get help and stay updated:

Build docs developers (and LLMs) love