Metadata-Version: 2.4
Name: duckdb_extensions
Version: 1.5.1
Summary: DuckDB extensions as python package
Project-URL: Documentation, https://github.com/santosh-d3vpl3x/duckdb_extensions#readme
Project-URL: Issues, https://github.com/santosh-d3vpl3x/duckdb_extensions/issues
Project-URL: Source, https://github.com/santosh-d3vpl3x/duckdb_extensions
Author-email: santosh <void@some.where>
License: MIT
License-File: LICENSE.md
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Python: >=3.10
Requires-Dist: duckdb==1.5.1
Requires-Dist: importlib-resources>=3.0.0; python_version < '3.9'
Provides-Extra: maintainer
Requires-Dist: click>=8.1; extra == 'maintainer'
Description-Content-Type: text/markdown

# pip installable DuckDB extensions
pip installable duckdb core extensions so you don't have to leave your python ecosystem behind.

[![PyPI - Version](https://img.shields.io/pypi/v/duckdb-extensions.svg)](https://pypi.org/project/duckdb-extensions)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/duckdb-extensions.svg)](https://pypi.org/project/duckdb-extensions)

-----

## Table of Contents

- [Installation](#installation)
- [Release cadence](#release-cadence)
- [Artifact integrity checks](#artifact-integrity-checks)
- [Licensing](#licensing)

## Available extensions
- [duckdb_extension_autocomplete](extensions/duckdb_extension_autocomplete)
- [duckdb_extension_avro](extensions/duckdb_extension_avro)
- [duckdb_extension_aws](extensions/duckdb_extension_aws)
- [duckdb_extension_azure](extensions/duckdb_extension_azure)
- [duckdb_extension_delta](extensions/duckdb_extension_delta)
- [duckdb_extension_ducklake](extensions/duckdb_extension_ducklake)
- [duckdb_extension_encodings](extensions/duckdb_extension_encodings)
- [duckdb_extension_excel](extensions/duckdb_extension_excel)
- [duckdb_extension_fts](extensions/duckdb_extension_fts)
- [duckdb_extension_httpfs](extensions/duckdb_extension_httpfs)
- [duckdb_extension_iceberg](extensions/duckdb_extension_iceberg)
- [duckdb_extension_icu](extensions/duckdb_extension_icu)
- [duckdb_extension_inet](extensions/duckdb_extension_inet)
- [duckdb_extension_json](extensions/duckdb_extension_json)
- [duckdb_extension_lance](extensions/duckdb_extension_lance)
- [duckdb_extension_motherduck](extensions/duckdb_extension_motherduck)
- [duckdb_extension_mysql](extensions/duckdb_extension_mysql)
- [duckdb_extension_mysql_scanner](extensions/duckdb_extension_mysql_scanner)
- [duckdb_extension_odbc](extensions/duckdb_extension_odbc)
- [duckdb_extension_odbc_scanner](extensions/duckdb_extension_odbc_scanner)
- [duckdb_extension_parquet](extensions/duckdb_extension_parquet)
- [duckdb_extension_postgres](extensions/duckdb_extension_postgres)
- [duckdb_extension_postgres_scanner](extensions/duckdb_extension_postgres_scanner)
- [duckdb_extension_spatial](extensions/duckdb_extension_spatial)
- [duckdb_extension_sqlite3](extensions/duckdb_extension_sqlite3)
- [duckdb_extension_sqlite](extensions/duckdb_extension_sqlite)
- [duckdb_extension_sqlite_scanner](extensions/duckdb_extension_sqlite_scanner)
- [duckdb_extension_tpcds](extensions/duckdb_extension_tpcds)
- [duckdb_extension_tpch](extensions/duckdb_extension_tpch)
- [duckdb_extension_ui](extensions/duckdb_extension_ui)
- [duckdb_extension_unity_catalog](extensions/duckdb_extension_unity_catalog)
- [duckdb_extension_vortex](extensions/duckdb_extension_vortex)
- [duckdb_extension_vss](extensions/duckdb_extension_vss)

**The architectures supported:**
- `linux_amd64`
- `linux_arm64`
- `osx_arm64`
- `osx_amd64`
- `windows_amd64`

Compatible with `duckdb==1.5.1`

## 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](CONTRIBUTING.md#updating-the-duckdb-runtime-version).

## Artifact integrity checks

- Release builds verify SHA-256 checksums for downloaded extension binaries using [`extension_checksums.json`](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`.
```console
pip install duckdb-extensions
```
Then one of the extensions.
```console

pip install duckdb-extension-httpfs
```
You are ready to install the extension for duckdb.
```python
from duckdb_extensions import import_extension
import_extension("httpfs")
```

Verify that the extension is installed.
```python
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](https://spdx.org/licenses/MIT.html) license.
- Bundled extension binaries are downloaded from upstream providers and may be governed by different licenses or terms.
- See [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md) for extension-by-extension provenance and upstream terms references.
