tursodatabase /libsql
libSQL is a fork of SQLite that is both Open Source, and Open Contributions.
★ 17,316⑂ 559
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