bareduckdb
Simplified, Dynamically Linked DuckDB Python Bindings — Fast, simple, and free-threaded.
Overview
bareduckdb provides extensible and easy to build Python bindings to DuckDB using Cython.
- Simple ~3.3k lines of C++, ~2k lines of Cython and ~2.9k lines of Python - easy to extend or customize
- Arrow-first data conversion supporting Polars, PyArrow, and Pandas
- Support for latest Python features Free threading, subinterpreters, ABI3 and asyncio
- Dynamically linked to DuckDB's official library
- Experimental Enhancements
Experimental Enhancements
- Explicit Stream vs Materialization Modes - At connection & execution time, select whether you want materialized arrow_tables or streaming arrow_readers.
- Arrow Deadlock Detection - certain use cases involving reuse of Arrow Readers can cause deadlocks
- Table Statistics - Extracts and passes table statistics at registration time
- Polars - No PyArrow Required - Polars can be read and produced without importing / installing PyArrow
- Polars - Native LazyFrame Pushdown - whereas DuckDB collects() LazyFrames before pushdown, bareduckdb pushes down native Polars predicates
- Inline Registration - bareduckdb.execute("query", data={...}) allows registration at call time
- User Defined Table Functions - extracts UDTFs at parse time and executes registered functions
- **Appender - Row by Row ** Exposes DuckDB's appender API for fast sequential writes to duckdb databases
Platform Notes
Linux, macOS, and Windows are supported. Windows links the same official DuckDB build but
reaches it through DuckDB's C API, so a few behaviors differ: registration copies the data,
and the experimental enhancements listed above are unavailable. See
readme_windows.md for the details. At runtime, bareduckdb.features
reports what the installed build supports.
Installation
From PyPI
pip install bareduckdb
From Source
git clone --recurse-submodules https://github.com/iqmo-org/bareduckdb.git
cd bareduckdb
uv sync -v # or: pip install -e .
If already cloned, use
git submodule update --init --recursive
Basic Usage
import bareduckdb
# Connect to in-memory database
conn = bareduckdb.connect()
# Execute query and get Arrow Table
result = conn.execute("SELECT 42 as answer").arrow_table()
print(result)
# Convert to Polars/Pandas/PyArrow
df_polars = conn.execute("SELECT * FROM range(100)").pl()
df_pandas = conn.execute("SELECT * FROM range(100)").df()
Async API
import asyncio
from bareduckdb.aio import connect_async
async def run_query():
async with await connect_async() as conn:
result = await conn.execute("SELECT * FROM generate_series(1, 1000)")
return result
result = asyncio.run(run_query())
Polars Integration
import bareduckdb
import polars as pl
conn = bareduckdb.connect()
# Polars -> DuckDB (Arrow Capsule protocol)
df = pl.DataFrame({"a": [1, 2, 3], "b": [4, 5, 6]})
conn.register("my_table", df)
# DuckDB -> Polars (direct conversion)
result = conn.execute("SELECT * FROM my_table", output_type="polars")
Architecture
Design Principles
- Keep it in Python — Business logic lives in Python, not Cython/C++
- No GIL interaction from DuckDB threads — All Python operations happen before/after query execution
- Semantic Versioning — Strict stability guarantees
- Arrow-first — All data types map through Arrow's type system
Why Arrow-First?
By forcing all conversions through Arrow, bareduckdb achieves:
- Consistent type mappings across Polars/Pandas/PyArrow
- Reduced code complexity (no per-library conversion paths)
- Better memory efficiency (zero-copy where possible)
- Future-proof (Arrow is the lingua franca for columnar data)
Thread Safety & Free-Threading
Free-threading support (Python 3.13+):
- No global locks in critical paths
- DuckDB threads never acquire the GIL
- Safe concurrent query execution in
--disable-gilmode - Atomic operations for Arrow stream coordination
APIs
bareduckdb provides multiple API layers for different use cases:
1. Core API (bareduckdb.core)
Minimal, no-frills interface for maximum performance.
from bareduckdb.core import Connection
conn = Connection()
result = conn.execute("SELECT 1")
2. Async API (bareduckdb.aio)
Non-blocking operations with async/await.
from bareduckdb.aio import connect_async
conn = await connect_async()
result = await conn.execute("SELECT 1")
3. Compatibility API (bareduckdb.compat)
Familiar interface similar to duckdb-python (with intentional differences).
import bareduckdb
conn = bareduckdb.connect()
result = conn.sql("SELECT 1") # Eager execution
4. DBAPI 2.0 (bareduckdb.dbapi)
Standard Python database interface for compatibility with tools like SQLAlchemy.
from bareduckdb.dbapi import connect
conn = connect()
cursor = conn.cursor()
cursor.execute("SELECT 1")
Key Differences
Experimental Features
When pyarrow is installed, two experimental features are available -
Arrow Statistics and Cardinality
In duckdb-python, Arrow Tables, Readers and Capsules are all converted to Streams via DataSet->Scanner->Reader. These Streams have no cardinality (number of rows) nor statistics (such as: min max, number of distinct values, contains nulls).
Cardinality is used at determining whether to use TopN, which significantly speeds up (w/ less memory) "order by X limit N" queries when N is small relative to size of table. Statistics are used for query planning by the optimizer.
In bareduckdb, Arrow Tables are registered directly (as Tables, not Streams) and used by arrow_scan_dataset which can then retrieve cardinality and column level statistics.
Statistics Options:
The register() method accepts a statistics parameter to control which columns have statistics computed:
import bareduckdb
conn = bareduckdb.connect()
# No statistics (fastest registration, default)
conn.register("table", df, statistics=None)
# Numeric columns only (recommended for most use cases)
conn.register("table", df, statistics="numeric")
# All columns (slowest - includes string min/max)
conn.register("table", df, statistics=True)
# Specific columns by name
conn.register("table", df, statistics=["id", "price", "date"])
# Regex pattern to match column names
conn.register("table", df, statistics=".*_id") # all columns ending with _id
Setting a Default:
Configure the default statistics mode at connection level:
# All register() calls will use numeric statistics by default
conn = bareduckdb.connect(default_statistics="numeric")
conn.register("table1", df1) # uses numeric stats
conn.register("table2", df2) # uses numeric stats
conn.register("table3", df3, statistics=False) # override: no stats
Performance Impact (500K rows, 2 numeric + 2 string columns):
| Mode | Registration Time | Use Case |
|---|---|---|
None |
~0.4ms | No filter pushdown needed |
"numeric" |
~10ms | JOIN/filter on numeric columns |
True |
~22ms | Filter pushdown on all columns |
The "numeric" option provides the best balance: fast registration with statistics for the columns most commonly used in filters and JOINs (IDs, dates, prices).
Arrow Pushdown
Arrow projection and filter pushdowns are implemented using the Arrow C++ library. Pushdowns are only implemented for Tables currently.
Relational API
- Use Ibis
Replacement Scans
Automatically discover Arrow tables in the caller's scope without explicit registration:
import bareduckdb
import pyarrow as pa
conn = bareduckdb.connect(enable_replacement_scan=True)
my_data = pa.table({"a": [1, 2, 3], "b": [4, 5, 6]})
result = conn.execute("SELECT * FROM my_data").arrow_table()
Customization: Override _get_replacement(name) method for custom discovery logic (e.g., loading from disk, fetching from API).
Manual Registration: Use .register() for explicit control or .execute(..., data={"name": df}) for inline registration.
Not (Yet?) Supported
- No Python UDFs (scalar functions)
- No fsspec integration
User Defined Table Functions
Table functions execute in Python before query execution, enabling data generation and connection injection without GIL interaction:
import bareduckdb
import pyarrow as pa
def generate_data(rows: int, multiplier: int = 1) -> pa.Table:
return pa.table({
"id": range(rows),
"value": [i * multiplier for i in range(rows)]
})
conn = bareduckdb.connect()
conn.register_udtf("generate_data", generate_data)
result = conn.execute("""
SELECT * FROM generate_data(100, 10)
WHERE value > 500
""").arrow_table()
Features:
- Query preprocessing via DuckDB's parser - references are extracted in C++, dispatch is in Python, and no Python callbacks run during query execution
- Connection injection: Add
connparameter to access connection during execution - Supports any Arrow-compatible object: PyArrow Table, Polars DataFrame, Pandas DataFrame
Arrow Enhancements
- Deadlock detection
Type Mappings
All types convert through Arrow:
- UUIDs: Returned as strings (Arrow doesn't have native UUID type)
- Decimals: Arrow
Decimal128/Decimal256 - Timestamps: Arrow
Timestampwith timezone preservation - Nested Types: Struct/List/Map fully supported
Development
Building from Source
# Clone with submodules (sparse checkout is automatic)
git clone --recurse-submodules https://github.com/iqmo-org/bareduckdb.git
cd bareduckdb
# Install development dependencies
uv sync
# Build in development mode
pip install -e .
* Note 1: DuckDB submodule version must match the library version. * Note 2: PyArrow version must match the runtime version for Table registration / Pushdown
Disclaimer
For official Python bindings, see: https://github.com/duckdb/duckdb-python
License
bareduckdb is licensed under the MIT License. See LICENSE for details.
All original copyrights are retained by their respective owners, including DuckDB and DuckDB-Python
Metadata
Release files for bareduckdb 0.12.155
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| bareduckdb-0.12.155-cp315-cp315t-win_amd64.whl | CPython 3.15 | CPython 3.15 free-threading | Windows x86-64 | Details |
| bareduckdb-0.12.155-cp315-cp315t-musllinux_1_2_x86_64.whl | CPython 3.15 | CPython 3.15 free-threading | Linux musl 1.2+ x86-64 | Details |
| bareduckdb-0.12.155-cp315-cp315t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl | CPython 3.15 | CPython 3.15 free-threading | Linux glibc 2.26+ x86-64, Linux glibc 2.28+ x86-64 | Details |
| bareduckdb-0.12.155-cp315-cp315t-macosx_11_0_arm64.whl | CPython 3.15 | CPython 3.15 free-threading | macOS 11.0+ ARM64 | Details |
| bareduckdb-0.12.155-cp314-cp314t-win_amd64.whl | CPython 3.14 | CPython 3.14 free-threading | Windows x86-64 | Details |
| bareduckdb-0.12.155-cp314-cp314t-musllinux_1_2_x86_64.whl | CPython 3.14 | CPython 3.14 free-threading | Linux musl 1.2+ x86-64 | Details |
| bareduckdb-0.12.155-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl | CPython 3.14 | CPython 3.14 free-threading | Linux glibc 2.26+ x86-64, Linux glibc 2.28+ x86-64 | Details |
| bareduckdb-0.12.155-cp314-cp314t-macosx_11_0_arm64.whl | CPython 3.14 | CPython 3.14 free-threading | macOS 11.0+ ARM64 | Details |
| bareduckdb-0.12.155-cp312-abi3-win_amd64.whl | CPython 3.12 | abi3 | Windows x86-64 | Details |
| bareduckdb-0.12.155-cp312-abi3-musllinux_1_2_x86_64.whl | CPython 3.12 | abi3 | Linux musl 1.2+ x86-64 | Details |
| bareduckdb-0.12.155-cp312-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl | CPython 3.12 | abi3 | Linux glibc 2.26+ x86-64, Linux glibc 2.28+ x86-64 | Details |
| bareduckdb-0.12.155-cp312-abi3-macosx_11_0_arm64.whl | CPython 3.12 | abi3 | macOS 11.0+ ARM64 | Details |
Total release size: 363.6 MB
Release files / bareduckdb-0.12.155-cp315-cp315t-win_amd64.whl
| Download URL | bareduckdb-0.12.155-cp315-cp315t-win_amd64.whl |
|---|---|
| Size | 13.9 MB |
| Tags | CPython 3.15 CPython 3.15 free-threading Windows x86-64 |
|
SHA-256 checksum How to use checksums |
9a44408405652cbbd53cefac6b1e5d2dcf6bf12d508c84bdd6a2661eaaafd779
|
|
BLAKE2b-256 checksum How to use checksums |
8e71a4ef8022027c2f7798fd1fa963f8b9400aa404e30903e7f5785c597c6ac6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 27, 2026.
Transparency logRelease files / bareduckdb-0.12.155-cp315-cp315t-musllinux_1_2_x86_64.whl
| Download URL | bareduckdb-0.12.155-cp315-cp315t-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 36.4 MB |
| Tags | CPython 3.15 CPython 3.15 free-threading Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
2219ab41ce367744f2675e562af676d0569b41c818f9fa99893e2951c76020d2
|
|
BLAKE2b-256 checksum How to use checksums |
8aadb11cdd7ae7271942439281073015d6151079c91190bad92c58131bbb0a2a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 27, 2026.
Transparency logRelease files / bareduckdb-0.12.155-cp315-cp315t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
| Download URL | bareduckdb-0.12.155-cp315-cp315t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 34.6 MB |
| Tags | CPython 3.15 CPython 3.15 free-threading Linux glibc 2.26+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
6ade2d7132b0d3d9292f093edb8d9dcf75097e8dc3b7a874e424309d62dd906a
|
|
BLAKE2b-256 checksum How to use checksums |
943928e30beacab96617700763295fd230ad5b3c01c75bb49899d01a1a0377cd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 27, 2026.
Transparency logRelease files / bareduckdb-0.12.155-cp315-cp315t-macosx_11_0_arm64.whl
| Download URL | bareduckdb-0.12.155-cp315-cp315t-macosx_11_0_arm64.whl |
|---|---|
| Size | 36.6 MB |
| Tags | CPython 3.15 CPython 3.15 free-threading macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
d0ca0537ef7f43084a2c64fe8b85a1e92fbc93b33cb328297f2da386496b0f41
|
|
BLAKE2b-256 checksum How to use checksums |
33a586f4f9f0c2300549b2ddf99d2b2b4f947a1212f548c902938dfbeaae0639
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 27, 2026.
Transparency logRelease files / bareduckdb-0.12.155-cp314-cp314t-win_amd64.whl
| Download URL | bareduckdb-0.12.155-cp314-cp314t-win_amd64.whl |
|---|---|
| Size | 13.9 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Windows x86-64 |
|
SHA-256 checksum How to use checksums |
1a09ef9e91f02b33c86030da9efd282521144f5bfa33367a82c348d2770d4e14
|
|
BLAKE2b-256 checksum How to use checksums |
0a0c2fff764f08b5013529125a008d34d5204d7b6dff069d81094bd9e4323527
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 27, 2026.
Transparency logRelease files / bareduckdb-0.12.155-cp314-cp314t-musllinux_1_2_x86_64.whl
| Download URL | bareduckdb-0.12.155-cp314-cp314t-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 36.4 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
d0dc103089ec2e207ad1122a2325ce91b27d103e13e0e09fbae16df69f19fd3b
|
|
BLAKE2b-256 checksum How to use checksums |
93d972673220fa473db996724e96ca1ac24909d7038dc6eadc8b1acf8be998ea
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 27, 2026.
Transparency logRelease files / bareduckdb-0.12.155-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
| Download URL | bareduckdb-0.12.155-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 34.6 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.26+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
602bcfcfafd1ab800493a0363f46ed13697f5bf1279fbd3ed7190906175d478a
|
|
BLAKE2b-256 checksum How to use checksums |
ee180512d7be258577e0fd9c7acf994484a41c72a209497da842a5406d3de01c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 27, 2026.
Transparency logRelease files / bareduckdb-0.12.155-cp314-cp314t-macosx_11_0_arm64.whl
| Download URL | bareduckdb-0.12.155-cp314-cp314t-macosx_11_0_arm64.whl |
|---|---|
| Size | 36.6 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
08cdc55980a3221cb6530d685ad08701ed3c8b78b2f806716d3026316bbc043d
|
|
BLAKE2b-256 checksum How to use checksums |
4557f49333b6da361be666fd87fe504528230058a258e9598a8ccc7344cfb66d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 27, 2026.
Transparency logRelease files / bareduckdb-0.12.155-cp312-abi3-win_amd64.whl
| Download URL | bareduckdb-0.12.155-cp312-abi3-win_amd64.whl |
|---|---|
| Size | 13.4 MB |
| Tags | CPython 3.12 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
576c32f3fad0a2573171485409b1439b595bf9f518c6157c26b3048a8e2c8bbc
|
|
BLAKE2b-256 checksum How to use checksums |
4b6b0523de9d0ccc41bfec8c6b881e5787d427898017371abf02a65a54825861
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 27, 2026.
Transparency logRelease files / bareduckdb-0.12.155-cp312-abi3-musllinux_1_2_x86_64.whl
| Download URL | bareduckdb-0.12.155-cp312-abi3-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 36.2 MB |
| Tags | CPython 3.12 Linux musl 1.2+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
bef351a2d5f40004c8dd7feb295c576e09b8cd6ba02fdb9800f7f4e575fa413b
|
|
BLAKE2b-256 checksum How to use checksums |
0df168afda0a61539feb6a5ccdba0b80824784023d7ab14a6514cda5a48e56dc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 27, 2026.
Transparency logRelease files / bareduckdb-0.12.155-cp312-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
| Download URL | bareduckdb-0.12.155-cp312-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 34.4 MB |
| Tags | CPython 3.12 Linux glibc 2.26+ x86-64 Linux glibc 2.28+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
5b2071948525f26a3620a3fbbcf698c4c9d824bc51cd88446e5b13541b7fdaa8
|
|
BLAKE2b-256 checksum How to use checksums |
3d01ba97277104be71e8188a12ad9f0830a732c714ef9bb1fb98386929f46779
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 27, 2026.
Transparency logRelease files / bareduckdb-0.12.155-cp312-abi3-macosx_11_0_arm64.whl
| Download URL | bareduckdb-0.12.155-cp312-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 36.6 MB |
| Tags | CPython 3.12 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
2d6d2495e70cd184448f46fd6c75967c3e9765ed75966e3b8e82c7d2fa5d506e
|
|
BLAKE2b-256 checksum How to use checksums |
c7a4975e0e6e9fa71a7e301b88bfc24aa6c1f568b98acb1dc9fc28f1c968a031
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 27, 2026.
Transparency log