Search Shortcut cmd + k | ctrl + k
Community Extensions

Welcome to the documentation for the DuckDB Community Extensions.

This website contains all documentation specific to community contributed & maintained extensions for DuckDB.

DuckDB is an analytical in-process SQL database management system, documented at DuckDB documentation Website.

Community means that the extensions are created by external contributors and not maintained by DuckDB Labs.

Extensions for DuckDB are the preferred way to package additional functionality for DuckDB. Generic extensions are documented in the core DuckDB documentation.

How to Use a Community Extension

To install and load a community extension, for example the quack demo extension, simply run:

INSTALL quack FROM community;
LOAD quack;

The quack extension is now loaded and ready to use

SELECT quack('world');

What are Community Extensions

Community Extensions are DuckDB extensions that are not maintained by the DuckDB team.

They are different from the Core Extensions, which are maintained by the DuckDB team, or from unsigned extensions, that are extensions that have an empty or invalid key.

Community Extensions are distributed via the Community Extension endpoint at http(s)://community-extensions.duckdb.org, and on INSTALL or UPDATE EXTENSIONS are retrieved from there.

Community Extension submissions and build process happens via the Community Extension repo.

Check the [Development page]/community_extensions/development.html on how to contribute an extension.

DuckDB Community extensions are conceptually similar to a package manager such as Homebrew, where code will reside in your own repository, but build and distribution is centralized.

Secure usage of DuckDB Community Extensions

DuckDB Community Extensions are signed, so that on LOAD a check is performed to prove a given extensions has been built by the Community Extension CI.

For more information on extensions and how to use them, check the [“Securing Extensions”]/docs/operations_manual/securing_duckdb/securing_extensions.html and [“Working with Extensions”]/docs/extensions/working_with_extensions.html pages.

In particular if you want to forbid LOAD of Community Extensions, run:

SET allow_community_extensions = false;

This will disable any subsequent load of extensions signed with the Community Extension key and lock the allow_community_extensions configuration.