Turso is a free, open source databases project written in C and released under MIT. It has 17,215 GitHub stars, 530 forks and 453 open issues, and was last pushed 39 hours ago. On this registry it ranks #37 of 81 tracked projects in Databases, with 5 head-to-head comparisons available.

Turso — SQLite-compatible database for scalable multi-tenant applications

What is Turso?

What it is

libSQL is an open source, open contribution fork of SQLite created and maintained by Turso. It lives in the SQLite ecosystem and extends the embedded database model with features such as embedded replicas and remote access. The repository also distinguishes libSQL from the separate Turso database, which is a SQLite-compatible implementation written from scratch in Rust and currently in beta.

The concrete problem libSQL addresses is the gap between a local database and a service that applications can reach remotely. SQLite is widely embedded and remains in the public domain, but its design leaves several use cases underserved. libSQL adds server access, replication, and core extensions so applications can keep SQLite-style simplicity while using a database in broader client and server workflows.

Key capabilities

  • Embedded replicas let an application maintain a replicated database inside its own app.
  • libSQL server provides remote SQLite access in a model similar to PostgreSQL or MySQL.
  • The project supports Rust, JavaScript, Python, Go, and more through official, experimental, and community drivers.
  • An ALTER TABLE extension allows modification of column types and constraints beyond the SQLite baseline.
  • Randomized ROWID support is available as a core extension.
  • WebAssembly user defined functions allow custom SQL functions to be written in WebAssembly.
  • A virtual write-ahead log interface and SQL string pass-down for virtual table implementations extend the SQLite core.

Who uses it and how

  • Developers use libSQL when they want SQLite-compatible storage with embedded replicas for local or replicated application data.
  • Teams use the libSQL server for remote database access from applications written in Rust, JavaScript, Python, Go, and related languages.
  • Tool users connect through supported GUI clients such as Beekeeper Studio, Outerbase, TablePlus, Dataflare, and libSQL Studio.
  • Contributors can build the SQLite-compatible C library and tools with cargo xtask build, then launch the libsql SQL shell for interactive work.

Getting started

Typical local use starts by building the SQLite-compatible C library and tools with cargo xtask build, then running the libsql program for the SQL shell. Docker use is described in the project's Docker documentation.

When to use it — and when not to

Choose libSQL when SQLite compatibility, embedded replicas, remote server access, and driver breadth matter more than the newest features being developed for the separate Turso database. Do not choose it if you need to avoid SQLite's inherited single-writer model, because libSQL keeps that limitation. Also avoid it if you require a non-experimental driver for every language, since Python, C, D, and Ring support are described as experimental or community-based.

project readme (upstream, from github) — read inline

libSQL by Turso

libSQL

libSQL is an open source, open contribution fork of SQLite, created and maintained by Turso.

libSQL Docs · libSQL Manifesto · Turso · Turso Docs · Discord · Blog & Tutorials

MIT discord activity phorm.ai


[!IMPORTANT] Turso database and libSQL are two different projects from the same team.

libSQL (this repository) is an open-source fork of SQLite. It extends SQLite with features like embedded replicas and remote access, but inherits SQLite's fundamental limitations such as the single-writer model.

Turso database is a SQLite-compatible database rewritten from scratch in Rust. It is not a fork of SQLite — it is a completely new implementation that goes beyond what any SQLite fork can offer, including concurrent writes and bi-directional sync with offline support. Turso is currently in beta.

If you're starting a new project, you probably want to look into Turso. libSQL is actively maintained, but new features are being developed in Turso.

Documentation

We aim to evolve it to suit many more use cases than SQLite was originally designed for, and plan to use third-party OSS code wherever it makes sense.

libSQL has many great features, including:

  • Embedded replicas that allow you to have replicated database inside your app.
  • libSQL server for remote SQLite access, similar to PostgreSQL or MySQL
  • Supports Rust, JavaScript, Python, Go, and more.

There are also various improvements and extensions to the core SQLite:

The comprehensive description can be found here

Official Drivers

Experimental Drivers

  • Python (experimental)
  • C (experimental)

Community Drivers

  • PHP
  • D (experimental, based on the C driver)
  • Ring (experimental, based on the C driver)

GUI Support

Getting Started

The project provides two interfaces: the libSQL API, which supports all the features, and the SQLite C API for compatibility.

To build the SQLite-compatible C library and tools, run:

cargo xtask build

To run the SQL shell, launch the libsql program:

$ cd libsql-sqlite3 && ./libsql
libSQL version 0.2.1 (based on SQLite version 3.43.0) 2023-05-23 11:47:56
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
libsql>

Docker

To run libSQL using docker, refer to the Docker Docs

Why a fork?

SQLite has solidified its place in modern technology stacks, embedded in nearly any computing device you can think of. Its open source nature and public domain availability make it a popular choice for modification to meet specific use cases.

But despite having its code available, SQLite famously doesn't accept external contributors and doesn't adhere to a code of conduct. So community improvements cannot be widely enjoyed.

There have been other forks in the past, but they all focus on a specific technical difference. We aim to be a community where people can contribute from many different angles and motivations.

We want to see a world where everyone can benefit from all the great ideas and hard work that the SQLite community

readme truncated — read the full docs on github

Frequently asked questions

Is Turso free to use?

Turso is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Turso do?

SQLite-compatible database for scalable multi-tenant applications

What is Turso written in?

Turso is primarily written in C. Its source is publicly available at https://github.com/tursodatabase/libsql, and it has 17,215 GitHub stars.