explaingit

tursodatabase/turso

📈 Trending18,853RustAudience · developerComplexity · 3/5ActiveLicenseSetup · moderate

TLDR

SQLite-compatible embedded SQL database in Rust with concurrent writes, vector search, and WebAssembly support.

Mindmap

mindmap
  root((Turso))
    What it does
      SQLite compatible
      Embedded database
      Concurrent writes
      Vector search
    Key features
      Change data capture
      Full-text search
      Encryption at rest
      io_uring on Linux
    Platforms
      Linux macOS Windows
      WebAssembly browsers
    Client libraries
      Rust JavaScript
      Python Go Java
      .NET
    Use cases
      Lightweight apps
      AI similarity search
      Real-time tracking
    Tech details
      MVCC concurrency
      Async I/O support

Things people build with this

USE CASE 1

Build lightweight embedded applications that need better write concurrency than standard SQLite.

USE CASE 2

Add vector search and AI similarity matching to your app without a separate vector database.

USE CASE 3

Run a full SQL database directly in the browser using WebAssembly for offline-first apps.

USE CASE 4

Track real-time data changes in your application using change data capture.

Tech stack

RustSQLiteWebAssemblyio_uring

Getting it running

Difficulty · moderate Time to first run · 30min

Rust compilation required; WebAssembly support needs wasm-pack or similar toolchain.

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

In plain English

Turso Database is an in-process SQL database written in Rust that is designed to be compatible with SQLite, meaning it reads and writes SQLite file formats and understands the same SQL dialect. "In-process" means the database runs directly inside your application rather than as a separate server you connect to over a network, similar to how SQLite works but with additional capabilities. Where it extends beyond SQLite, Turso adds support for concurrent writes through a feature called BEGIN CONCURRENT (using multi-version concurrency control, which lets multiple writers proceed without fully blocking each other), change data capture for tracking what changed in real time, vector search for AI and similarity search use cases, full-text search, and experimental encryption at rest. It also supports asynchronous I/O on Linux via io_uring for better performance. The database runs on Linux, macOS, Windows, and even in browsers via WebAssembly. You would use Turso if you are building an application that needs a lightweight embedded database with SQLite compatibility but wants better write concurrency, modern features like vector search, or the ability to run in WebAssembly environments. Client libraries are available for Rust, JavaScript, Python, Go, Java, and .NET. It is in beta, licensed under MIT, and is available on crates.io as turso.

Copy-paste prompts

Prompt 1
Show me how to set up Turso as an embedded database in a Rust application and run concurrent writes.
Prompt 2
How do I use Turso's vector search feature to build a similarity search for AI embeddings?
Prompt 3
Can you help me migrate a SQLite database to Turso and what changes do I need to make?
Prompt 4
How do I compile Turso to WebAssembly and use it in a browser-based app?
Prompt 5
Show me how to set up change data capture in Turso to track real-time updates.
Open on GitHub → Explain another repo

Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.