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 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” and “Working with Extensions” 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.