tursodatabase /libsql

libSQL is a fork of SQLite that is both Open Source, and Open Contributions.

★ 17,316⑂ 559
CCreated 2022-09-29turso.tech/libsql
17,316
stars
+11+7+53
559
forks
–
watchers
–
prs
–
issues
–
releases
–
discussions

README

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



  
    
  
  
    
  
   
  


---

 [!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:

 ALTER TABLE extension for modifying column types and constraints
 Randomized ROWID
 WebAssembly User Defined Functions
 Pass down SQL string to virtual table implementation
 Virtual write-ahead log interface

The comprehensive description can be found here

 Official Drivers

 TypeScript / JS
 Rust
 Go
 Go (no CGO)

 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

 Beekeeper Studio — macOS, Windows, and Linux
 Outerbase — Runs in the browser
 TablePlus — macOS, Windows, and Linux
 Dataflare — Paid (with limited free version) macOS, Windows, and Linux
 libSQL Studio - Runs in the browser

 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:

sh
cargo xtask build


To run the SQL shell, launch the libsql program:

console
$ 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 a

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON