Skillversitas

DuckDB Extensions

Extensions add functionality to DuckDB: new file formats, new SQL functions, and integrations with other systems. Many are bundled with the standard distribution and can be installed and loaded on demand.

Listing Extensions

The catalog of all known extensions is itself a table:

SELECT extension_name, loaded, installed, description
FROM duckdb_extensions()
WHERE loaded OR installed;

Installing and Loading

INSTALL downloads an extension binary; LOAD makes it available in the current session. Core extensions such as json, icu, and httpfs usually auto-load when first used:

INSTALL json;
LOAD json;
SELECT * FROM json('{"a": 1, "b": [1, 2]}');
ExtensionPurpose
httpfsRead/write remote data over HTTP, S3, GCS, Azure
icuTime zones, collation, and locale-aware functions
spatialGIS types and PostGIS-style geometry functions
postgres_scannerQuery live PostgreSQL tables without copying data
sqlite_scannerQuery .sqlite files as external tables
deltaRead and write Delta Lake tables
excelRead and write .xlsx spreadsheets
ftsFull-text search indexes

Community Extensions

A repository of community-built extensions is published by the DuckDB project. You can install them by name, and with the DuckDB CLI you can also build your own extension from source and load it locally.

Best Practices

  • Pin DuckDB versions in production so extensions stay compatible.
  • Prefer built-in file readers (Parquet, CSV) over extensions when they cover the format.
  • Test INSTALL on an air-gapped host offline using pre-downloaded extension binaries.

Summary

Extensions extend DuckDB with new formats, functions, and integrations. List them with duckdb_extensions(), activate them with INSTALL and LOAD, and rely on auto-loading for the common ones. The extension model keeps the core binary small while covering almost every data source you would meet in a modern stack.