DuckDB Extensions: httpfs, Spatial, Full-Text Search & the Community Ecosystem

Tour DuckDB's extension system — INSTALL/LOAD, autoloading, and the core extensions for cloud storage, spatial data, full-text search, and lakehouse formats.

DuckDB Extensions Ecosystem

DuckDB keeps its core binary small and adds capability through extensions — separate modules you install and load on demand rather than always shipping in the base engine.


The Basic Pattern

INSTALL <extension_name>; -- downloads once, cached locally
LOAD <extension_name>; -- loads into the current session

Most official extensions also autoload: referencing read_parquet(...) or an s3:// path triggers DuckDB to install and load the relevant extension automatically the first time it’s needed, without an explicit INSTALL/LOAD line.


Core Official Extensions

ExtensionPurpose
httpfsHTTP(S), S3, GCS, and Azure Blob access
jsonJSON reading, parsing, and functions
parquetParquet read/write (built in, always available)
spatialGeospatial types (GEOMETRY), functions, and format readers (Shapefile, GeoJSON)
ftsFull-text search — BM25-ranked search over text columns
icebergRead Apache Iceberg tables
deltaRead Delta Lake tables
excelRead/write .xlsx files directly
postgres_scannerQuery a live Postgres database as if it were a DuckDB table
sqlite_scannerQuery a SQLite file directly

INSTALL fts;
LOAD fts;
PRAGMA create_fts_index('articles', 'id', 'title', 'body');
SELECT id, title, fts_main_articles.match_bm25(id, 'duckdb performance') AS score
FROM articles
WHERE score IS NOT NULL
ORDER BY score DESC;

Example: Querying a Live Postgres Table

INSTALL postgres;
LOAD postgres;
ATTACH 'dbname=mydb user=postgres host=localhost' AS pg (TYPE postgres);
SELECT * FROM pg.public.customers LIMIT 10;

This lets DuckDB act as a federation layer — joining a live Postgres table to a local Parquet file to an S3-hosted CSV in a single query, without moving any of it into a permanent copy first.


Community Extensions

Beyond the official set maintained by DuckDB Labs, a growing community extension registry hosts third-party extensions (installed the same way, via INSTALL <name> FROM community) for things like additional geospatial formats, specialized compression codecs, and integrations with niche file formats. Browse the current list at duckdb.org/community_extensions.