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.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
SQLite Compatibility
SQLite Compatibility
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.
Multi-Language Bindings
Multi-Language Bindings
Use Turso from your language of choice:
- Rust —
cargo add turso - JavaScript/Node.js —
npm i @tursodatabase/database - Python —
uv pip install pyturso - Go —
go get turso.tech/database/tursogo - Java — Available via Maven Central
- WebAssembly — Run in browsers with the WASM build
Vector Search
Vector Search
Store and query vector embeddings with multiple distance metrics: cosine, L2 (Euclidean), dot product, and Jaccard. Supports dense, sparse, quantized (8-bit), and binary (1-bit) vector types.
Full-Text Search (Experimental)
Full-Text Search (Experimental)
Create FTS indexes on text columns using
CREATE INDEX ... USING fts. Query with BM25 scoring, phrase search, boolean operators, and field boosting.Change Data Capture
Change Data Capture
Enable CDC to automatically log every INSERT, UPDATE, and DELETE to a
turso_cdc table. Supports capturing row state before and/or after changes.MVCC — Concurrent Transactions (Experimental)
MVCC — Concurrent Transactions (Experimental)
Enable multi-version concurrency control with
PRAGMA journal_mode = mvcc for snapshot isolation and concurrent write transactions.MCP Server
MCP Server
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 shellSQL 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:| Turso | libSQL | |
|---|---|---|
| Approach | Full rewrite in Rust | Fork of SQLite (C) |
| Status | Beta | Production ready |
| Native async | Yes (io_uring) | Limited |
| Memory safety | Yes (Rust) | No |