
libSQL
An open-source fork of SQLite that accepts outside contributions.
- Stars
- 17.3k
- Forks
- 554
- Licence
- MIT
- Language
- C
- Last update
- 20 days ago
- Type
- Library
What it is
libSQL is a fork of SQLite, the small embedded database used in many apps and devices. It keeps SQLite compatibility and adds extras such as embedded replicas, a server mode for remote access, and some SQL extensions. It is maintained by Turso and is open to outside contributions, which the README contrasts with SQLite's closed contribution model.
- Embed a local database in an application and optionally replicate it
- Run libsql-server to offer SQLite-style remote access, similar to PostgreSQL or MySQL clients
- Use the libsql shell to open and query a database from the command line
- Use GUI tools such as TablePlus or Beekeeper Studio to browse libSQL databases
Great for
- Developers who already use SQLite and want extra features like embedded replicas
- Teams that want a SQLite-based database they can reach remotely through libsql-server
- Projects that need a SQLite fork with open contribution rules
- Developers working in Rust, JavaScript, Python, or Go who want an official driver
Not ideal for
- People starting a new project: the README points to the separate Turso database project for new work, since libSQL is actively maintained but new features are going into Turso
- Anyone needing concurrent writes, since the README says libSQL inherits SQLite's single-writer model
- Non-developers looking for a ready-made app; this is a database engine and its tools
How to get it
- 1
Clone and build from source
You'll need: Rust toolchain (cargo)
Build the SQLite-compatible C library and tools
cargo xtask build - 2
Run it
- Build the project with cargo xtask build
- Change into the libsql-sqlite3 directory
- Run ./libsql to open the SQL shell
- Use .open FILENAME to open a persistent database file
- 3
Get the most out of it
- Use embedded replicas if you need a local copy synced from a remote database
- Run libsql-server for remote SQLite-style access
- Try the ALTER TABLE extension for changing column types and constraints, as described in the extensions doc
- Use Docker if you prefer containers, following docs/DOCKER.md
Downloads
Strengths
- Compatible with the SQLite C API and built on a widely used database
- Open source under MIT with open contributions
- Official drivers for several languages and a documented set of extensions
Trade-offs
- Inherits SQLite's single-writer limitation according to the README
- The README itself recommends Turso for new projects, so the long-term focus is unclear for new users
- Some drivers are marked experimental or community-maintained
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| libsql (this) | 17.3k | Library | intermediate | 20 days ago | Developers who already use SQLite and want extra features like embedded replicas |
| turso | 25.1k | Library | intermediate | 4 days ago | Developers who want an embedded SQLite-compatible database in a Rust, JavaScript, Python, Java, Go, or .NET project |
| duckdb | 42.7k | Library | beginner | 4 days ago | Analysts who want to run SQL directly on CSV, Parquet, or JSON files |
| typeorm | 36.7k | Library | intermediate | 8 days ago | Node.js or TypeScript developers building apps backed by a relational database |
| lowdb | 22.6k | Library | beginner | 7 months ago | Node.js developers building small tools or prototypes that need simple persistent storage |
| rqlite | 17.9k | App | intermediate | 4 days ago | Developers who want a replicated SQL database without running a large database server |
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.