SQLite has very few functions compared to other DBMS. SQLite authors see this as a feature rather than a bug, because SQLite has 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 all together, neatly packaged by domain modules and built for Linux, Windows and macOS.
Here is what we've got right now:
- json1: JSON functions
- math: math functions
- re: regular expressions
- stats: statistical functions
- vsv: CSV files as virtual tables
- unicode: Unicode string functions
There are precompiled binaries for every OS:
*.dll
- for Windows*.so
- for Linux*.dylib
- for macOS
CLI usage:
sqlite> .load ./stats
sqlite> select median(value) from generate_series(1, 100);
IDE usage:
select load_extension('/path/to/extension/stats');
select median(value) from generate_series(1, 100);
In-app usage:
import sqlite3
connection = sqlite3.connect(":memory:")
connection.enable_load_extension(True)
connection.load_extension("./stats.so")
connection.execute("select median(value) from generate_series(1, 100)")
connection.close()
You can specify any other supported extension instead of stats
.