About this project

libSQL is a community-oriented fork of SQLite created and maintained by Turso. The project aims to extend SQLite for additional use cases while remaining embeddable and compatible with existing SQLite databases and APIs. Key capabilities include embedded replicas for replicated databases inside an application, a libSQL server for remote access similar to traditional database servers, and core extensions such as ALTER TABLE support for changing column types and constraints, randomized ROWID values, WebAssembly user-defined functions, SQL pass-through to virtual tables, and a virtual write-ahead log interface. The repository provides two interfaces: the feature-rich libSQL API and the SQLite-compatible C API. It can build the SQLite-compatible C library and command-line tools with Cargo, and includes a libsql SQL shell. Docker usage is documented separately. Official drivers are available for TypeScript/JavaScript, Rust, Go, and CGO-free Go. Experimental support is listed for Python and C, with community drivers for PHP, D, and Ring. Supported GUI clients include Beekeeper Studio, Outerbase, TablePlus, Dataflare, and libSQL Studio. The project states that it will continue to read and write the standard SQLite file format, retain SQLite API compatibility, and remain usable as an embedded, in-process database. Optional file-format extensions are intended to produce standard SQLite files when unused. The README explicitly distinguishes libSQL from Turso database: libSQL is a SQLite fork and inherits SQLite's single-writer model, while Turso database is a separate Rust-based, SQLite-compatible implementation with features such as concurrent writes and bidirectional sync. libSQL remains actively maintained, while new feature development is described as happening in Turso. libSQL is open source under an MIT license and includes a Code of Conduct.