SELF is an executable format that stores a program as a SQLite database, with executable segments represented as database rows. A Linux binfmt_misc interpreter maps those rows and transfers control to the program entry point, allowing executable contents and related metadata to be queried with SQL. The format can also let a running program open its own SQLite file through argv[0] and persist state in that same file; /proc/self/exe does not currently provide the original file in this setup. The self-httpd proof of concept packages a web server, website routes, visitor logs and button-press records into one SQLite database file. Its routes, visits and presses tables store page content and runtime data, while the server can query its own segments, symbols and relocations. A POST request to its /api/press endpoint inserts a button press into the executable’s database, and the live demonstration is hosted at selfdb.exe.xyz. SQLite transactions allow site content in the running file to be updated or rolled back without restarting the server. SQLite tools such as sqldiff can compare code, route and metadata changes between versions, and FTS5 can index pages stored in the executable. Deployments can copy a single file, while SQL INSERT ... SELECT statements can migrate tables such as visitor logs and button presses from an old file to a new build before it is swapped in.
fzakaria.com
7 min
8/26/2026
DuckDB v2.0, code-named Cyanoptera, is planned for release this fall with a client/server mode, a new storage format and SQL parser, triggers, expanded semi-structured data support, and asynchronous I/O. More than 10,000 commits have been made since DuckDB v1.5 was released in March. The Quack extension will become stable, allowing a DuckDB process to serve databases over the network; the CONNECT statement can route queries to DuckDB, PostgreSQL, or MySQL servers. DuckDB says its transactional MVCC architecture supports multi-connection workloads. The release expands the VARIANT type for schema-flexible data, including storage-level execution, Parquet read/write support, and variant functions. SQL additions include BEFORE and AFTER triggers, approximate nearest-neighbor joins, data-modifying CTEs, nested schemas, JSON mutation functions, and recursive CTE aggregation. Async I/O will support Parquet, CSV, DuckDB files, and Parquet writes, targeting faster network-storage queries. A preview benchmark reports a recursive graph query falling from 4.90 seconds in v1.5.4 to 0.12 seconds in v2.0. The new storage format pages indexes into memory on demand, while a PEG-based parser enables grammar extensions and a Spark compatibility mode. DuckDB also replaces ICU with an extension using compressed IANA timezone data and broadens its stable C API so extensions can remain compatible across versions.
duckdb.org
14 min
8/17/2026
SELF is an executable format that stores a program as a SQLite database, with executable segments represented as database rows. A Linux binfmt_misc interpreter maps those rows and transfers control to the program entry point, allowing executable contents and related metadata to be queried with SQL. The format can also let a running program open its own SQLite file through argv[0] and persist state in that same file; /proc/self/exe does not currently provide the original file in this setup. The self-httpd proof of concept packages a web server, website routes, visitor logs and button-press records into one SQLite database file. Its routes, visits and presses tables store page content and runtime data, while the server can query its own segments, symbols and relocations. A POST request to its /api/press endpoint inserts a button press into the executable’s database, and the live demonstration is hosted at selfdb.exe.xyz. SQLite transactions allow site content in the running file to be updated or rolled back without restarting the server. SQLite tools such as sqldiff can compare code, route and metadata changes between versions, and FTS5 can index pages stored in the executable. Deployments can copy a single file, while SQL INSERT ... SELECT statements can migrate tables such as visitor logs and button presses from an old file to a new build before it is swapped in.
fzakaria.com
7 min
8/26/2026
DuckDB v2.0, code-named Cyanoptera, is planned for release this fall with a client/server mode, a new storage format and SQL parser, triggers, expanded semi-structured data support, and asynchronous I/O. More than 10,000 commits have been made since DuckDB v1.5 was released in March. The Quack extension will become stable, allowing a DuckDB process to serve databases over the network; the CONNECT statement can route queries to DuckDB, PostgreSQL, or MySQL servers. DuckDB says its transactional MVCC architecture supports multi-connection workloads. The release expands the VARIANT type for schema-flexible data, including storage-level execution, Parquet read/write support, and variant functions. SQL additions include BEFORE and AFTER triggers, approximate nearest-neighbor joins, data-modifying CTEs, nested schemas, JSON mutation functions, and recursive CTE aggregation. Async I/O will support Parquet, CSV, DuckDB files, and Parquet writes, targeting faster network-storage queries. A preview benchmark reports a recursive graph query falling from 4.90 seconds in v1.5.4 to 0.12 seconds in v2.0. The new storage format pages indexes into memory on demand, while a PEG-based parser enables grammar extensions and a Spark compatibility mode. DuckDB also replaces ICU with an extension using compressed IANA timezone data and broadens its stable C API so extensions can remain compatible across versions.
duckdb.org
14 min
8/17/2026
SELF is an executable format that stores a program as a SQLite database, with executable segments represented as database rows. A Linux binfmt_misc interpreter maps those rows and transfers control to the program entry point, allowing executable contents and related metadata to be queried with SQL. The format can also let a running program open its own SQLite file through argv[0] and persist state in that same file; /proc/self/exe does not currently provide the original file in this setup. The self-httpd proof of concept packages a web server, website routes, visitor logs and button-press records into one SQLite database file. Its routes, visits and presses tables store page content and runtime data, while the server can query its own segments, symbols and relocations. A POST request to its /api/press endpoint inserts a button press into the executable’s database, and the live demonstration is hosted at selfdb.exe.xyz. SQLite transactions allow site content in the running file to be updated or rolled back without restarting the server. SQLite tools such as sqldiff can compare code, route and metadata changes between versions, and FTS5 can index pages stored in the executable. Deployments can copy a single file, while SQL INSERT ... SELECT statements can migrate tables such as visitor logs and button presses from an old file to a new build before it is swapped in.
fzakaria.com
7 min
8/26/2026
DuckDB v2.0, code-named Cyanoptera, is planned for release this fall with a client/server mode, a new storage format and SQL parser, triggers, expanded semi-structured data support, and asynchronous I/O. More than 10,000 commits have been made since DuckDB v1.5 was released in March. The Quack extension will become stable, allowing a DuckDB process to serve databases over the network; the CONNECT statement can route queries to DuckDB, PostgreSQL, or MySQL servers. DuckDB says its transactional MVCC architecture supports multi-connection workloads. The release expands the VARIANT type for schema-flexible data, including storage-level execution, Parquet read/write support, and variant functions. SQL additions include BEFORE and AFTER triggers, approximate nearest-neighbor joins, data-modifying CTEs, nested schemas, JSON mutation functions, and recursive CTE aggregation. Async I/O will support Parquet, CSV, DuckDB files, and Parquet writes, targeting faster network-storage queries. A preview benchmark reports a recursive graph query falling from 4.90 seconds in v1.5.4 to 0.12 seconds in v2.0. The new storage format pages indexes into memory on demand, while a PEG-based parser enables grammar extensions and a Spark compatibility mode. DuckDB also replaces ICU with an extension using compressed IANA timezone data and broadens its stable C API so extensions can remain compatible across versions.
duckdb.org
14 min
8/17/2026
No more articles to load