GitHub - santosh-d3vpl3x/duckdb_extensions: pip installable duckdb extensions published to pypi

2 min read Original article ↗

pip installable DuckDB extensions

pip installable DuckDB core extensions, so you don't have to leave your Python ecosystem behind.

PyPI - Version PyPI - Python Version


Table of Contents

Available extensions

The architectures supported:

  • linux_amd64
  • linux_arm64
  • osx_arm64
  • osx_amd64
  • windows_amd64

Compatible with duckdb==1.5.3

Project scope

This repository deliberately packages DuckDB core extensions.

It does not currently package community extensions or nightly-only extensions from other repositories (for example https://community-extensions.duckdb.org). That is a deliberate scope choice: core extensions are maintained by DuckDB Labs and come with a different trust model than third-party/community extensions, and packaging and redistributing community-maintained or unstable moving targets would require accepting additional supply chain risk and per-extension vendor assessment.

Release cadence

This repository does not publish on every upstream DuckDB extension commit.

For a change (for example in duckdb-excel) to show up here:

  1. The change must be included in DuckDB's published extension artifact for a specific DuckDB version.
  2. This repository must bump to that same DuckDB version and publish a new tag.

CI builds run on pushes and pull requests, but PyPI publishing happens only for tagged releases in this repository. Maintainer steps for version bumps are documented in CONTRIBUTING.md.

Artifact integrity checks

  • Release builds verify SHA-256 checksums for downloaded extension binaries using extension_checksums.json.
  • If checksums are missing or mismatched, the build fails.
  • Local developer breakglass is available via DUCKDB_EXTENSIONS_ALLOW_UNVERIFIED=1 for emergency debugging only.
  • Breakglass is blocked in GitHub Actions to ensure published artifacts are always checksum-verified.

Installation

First install duckdb-extensions.

pip install duckdb-extensions

Then one of the extensions.

pip install duckdb-extension-httpfs

You are ready to install the extension for duckdb.

from duckdb_extensions import import_extension
import_extension("httpfs")

Verify that the extension is installed.

import duckdb

print(
    duckdb.sql("""SELECT installed
                FROM duckdb_extensions() where extension_name='httpfs'""")
    .fetchone()[0]
)

Licensing

  • duckdb-extensions repository code and wrapper/package code are distributed under the terms of the MIT license.
  • Bundled extension binaries are downloaded from upstream providers and may be governed by different licenses or terms.
  • See THIRD_PARTY_LICENSES.md for extension-by-extension provenance and upstream terms references.