SQLite has few functions compared to other database management systems. SQLite authors see this as a feature rather than a problem, because SQLite has an extension mechanism in place.
There are a lot of SQLite extensions out there, but they are incomplete, inconsistent and scattered across the internet.
sqlean brings them together, neatly packaged into domain modules, documented, tested, and built for Linux, Windows and macOS.
We do not try to gather all the existing extensions into one giant pile — that would not be very useful. The goal is to create a well-thought set of domain modules with a convenient API. A kind of standard library for SQLite.
To achieve it, we split extensions that are too broad, merge the ones that are too narrow, refactor, add missing features, test, document, and do a ton of other small things.
These are the most popular functions. They are tested, documented and organized into the domain modules with clear API.
Think of them as the extended standard library for SQLite:
- crypto: hashing, encoding and decoding data
- define: user-defined functions and dynamic sql
- fileio: read and write files
- fuzzy: fuzzy string matching and phonetics
- ipaddr: IP address manipulation
- math: math functions
- regexp: regular expressions
- stats: math statistics
- text: string functions
- unicode: Unicode support
- uuid: Universally Unique IDentifiers
- vsv: CSV files as virtual tables
sqlean bundle contains all extensions from the main set.
The scope of this project is limited to extensions without external dependencies (other than the C standard library and SQLite itself).
There are a lot of useful extensions that do not quite fit the scope for various reasons. To learn more about them, visit the SQLite extension hub.
There are precompiled binaries for every OS:
sqlean-win-x64.zip- for Windows
sqlean-linux-x86.zip- for Linux
sqlean-macos-x86.zip- for Intel-based macOS
sqlean-macos-arm64.zip- for Apple silicon (ARM-based) macOS
Binaries are 64-bit and require a 64-bit SQLite version. If you are using SQLite shell on Windows (
sqlite.exe), its 64-bit version is available at https://github.com/nalgeon/sqlite.
Other extensions are available for download from sqlpkg.org.
The easiest way to try out
sqlean extensions is to use the pre-bundled shell. But you can also load them individually.
For example, using the SQLite command-line interface:
sqlite> .load ./sqlean
sqlite> select median(value) from generate_series(1, 99);
Download the dependencies:
Then build for your OS (choose one of the following):
You'll find the compiled extensions in the
This project only accepts bug fixes and minor improvements. If you'd like to contribute a new extension, please submit it to the extension hub repo.
Projects related to
- sqlpkg.org: a catalog of all SQLite extensions, with search and manual downloads.
- sqlime.org: an online SQLite playground for debugging and sharing SQL snippets.
- sqlpkg: an automated packager manager for SQLite (like
npmfor JS or
- sqlean.py: a drop-in replacement for the default
- sqlean.js: browser-based SQLite with extensions.
- shell: custom builds for
The software is available under the MIT License.
★ Subscribe to stay on top of new features.