Skip to main content
Turso ships with a set of built-in extensions that are compiled directly into the binary. All extension functions are available automatically — no load_extension() call or dynamic library is required.

Available extensions

ExtensionFunctionsDescription
Cryptocrypto_md5, crypto_sha1, crypto_sha256, crypto_sha384, crypto_sha512, crypto_blake3, crypto_encode, crypto_decodeCryptographic hash functions and binary encoding/decoding
Regexpregexp, regexp_like, regexp_substr, regexp_replace, regexp_captureRegular expression matching, extraction, and replacement
CSVcsv virtual tableQuery CSV files and inline CSV data as SQL tables
Fuzzyfuzzy_leven, fuzzy_damlev, fuzzy_editdist, fuzzy_hamming, fuzzy_jarowin, fuzzy_osadist, fuzzy_soundex, fuzzy_phonetic, fuzzy_caver, fuzzy_rsoundex, fuzzy_translit, fuzzy_scriptFuzzy string similarity, phonetic encoding, and transliteration
IP Addressipcontains, ipfamily, iphost, ipmasklen, ipnetworkParse and inspect IPv4 and IPv6 addresses and CIDR ranges
Percentilemedian, percentile, percentile_cont, percentile_disc, stddevStatistical aggregate functions

Using extension functions

Extension functions work like any built-in SQL function. Call them directly in a query:
SELECT crypto_sha256('hello');
SELECT regexp_like('hello world', 'world');
SELECT ipfamily('192.168.1.1');
SELECT median(score) FROM results;
The CSV extension uses the virtual table mechanism instead of scalar functions:
CREATE VIRTUAL TABLE temp.data USING csv(filename='data.csv', header=yes);
SELECT * FROM data;
All extensions listed here are built into the Turso binary and do not require any configuration to use. The load_extension() function only works with Turso-native extensions, not external SQLite .so or .dll files.

Build docs developers (and LLMs) love