Skip to main content

adbcBridge (Python)

Thin Python wrapper around adbcBridge, the ADBC driver for any ODBC data source. It finds the libadbc_driver_odbc shared library and hands it to adbc_driver_manager, so every ODBC driver on the machine becomes an Arrow-native ADBC database.

pip install adbcbridge
import adbcbridge

with adbcbridge.connect(uri="Driver=SQLite3;Database=my.db;") as conn:
    with conn.cursor() as cur:
        cur.execute("SELECT * FROM t")
        table = cur.fetch_arrow_table()   # pyarrow.Table

connect() returns a plain adbc_driver_manager.dbapi.Connection, so the whole ADBC DBAPI surface (cursor(), fetch_arrow_table(), adbc_ingest(), adbc_get_objects(), …) is available.

API

adbcbridge.connect(uri=None, dsn=None, username=None, password=None,
                   driver_path=None, *, autocommit=False, conn_kwargs=None,
                   **options) -> adbc_driver_manager.dbapi.Connection
adbcbridge.driver_path() -> str            # path of libadbc_driver_odbc.so
adbcbridge.odbc_drivers() -> list[OdbcDriver]   # from odbcinst.ini
adbcbridge.odbcinst_ini() -> pathlib.Path | None
adbcbridge.odbc_driver_library(driver=None, *, uri=None, dsn=None) -> str | None
adbcbridge.preload_odbc_driver(driver=None, *, uri=None, dsn=None,
                               strict=False) -> str | None

import adbcbridge does not import pyarrow: adbc_driver_manager.dbapi is imported inside connect(), after the ODBC driver named in the connection string has been opened. A few ODBC drivers — MySQL Connector/ODBC is the one in the wild — can only be loaded while libstdc++ has not yet been pinned to dynamic thread-local storage, which importing pyarrow does. preload_odbc_driver() is that step on its own, for programs that drive adbc_driver_manager or pyodbc themselves; ADBCBRIDGE_PRELOAD=0 disables the automatic one in connect(). See docs/TROUBLESHOOTING.md.

Extra **options become database options: a bare name is prefixed with adbc.odbc. (batch_size=4096 → adbc.odbc.batch_size), a dotted name is passed through as given, and True/False become "true"/"false".

conn = adbcbridge.connect(
    uri="Driver=/usr/lib/x86_64-linux-gnu/odbc/psqlodbcw.so;Server=127.0.0.1;Database=app;",
    username="app", password="secret",
    batch_size=4096, decimal_as_string=True,   # adbc.odbc.*
)

Finding the driver library

driver_path() looks, in order, at

  1. the ADBC_ODBC_DRIVER environment variable (an explicit value that does not exist is an error, not a silent fallback);
  2. a copy bundled inside this package (see below);
  3. the ADBC driver manifest named odbc — odbc.toml under $ADBC_DRIVER_PATH, <sys.prefix>/etc/adbc/drivers, ~/.config/adbc/drivers, /etc/adbc/drivers, … — as installed by cmake --install build --prefix "$VIRTUAL_ENV";
  4. common install locations: <sys.prefix>/lib, /usr/local/lib, /usr/lib, /usr/lib/<arch>-linux-gnu, and a build/ tree next to a source checkout (so pip install -e python works right after cmake --build build).

If nothing matches it raises adbcbridge.DriverNotFoundError.

Command line

adbcbridge query "Driver=SQLite3;Database=my.db;" "SELECT * FROM t"
adbcbridge query "Driver=SQLite3;Database=my.db;" "SELECT * FROM t WHERE i > ?" -p 3
adbcbridge query ... --format csv > out.csv     # or --format schema, --limit N
adbcbridge drivers            # ODBC drivers from odbcinst -j / odbcinst.ini
adbcbridge driver-path        # which libadbc_driver_odbc.so would be used

Building a wheel with the driver bundled

The wheel is pure Python unless a driver library is around at build time, in which case setup.py copies it into the package and tags the wheel for the current platform:

cmake -S . -B build -DCMAKE_BUILD_TYPE=Release && cmake --build build
python -m pip install build
python -m build --wheel python          # picks up ./build/libadbc_driver_odbc.so

Point it somewhere else with ADBCBRIDGE_LIBRARY=/path/to/libadbc_driver_odbc.so (or ADBCBRIDGE_BUILD_DIR=/path/to/cmake-build-tree). Without either, and with no build/ tree, the wheel contains no binary and driver_path() falls back to the manifest or a system-wide install at run time.

Tests

pip install -e python
SQLITE_ODBC_DRIVER=/path/to/libsqlite3odbc.so \
ADBC_ODBC_DRIVER=$PWD/build/libadbc_driver_odbc.so \
  pytest python/tests

Apache-2.0.

Metadata

Release files for adbcbridge 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for adbcbridge 0.1.3
File Size Uploaded
adbcbridge-0.1.3.tar.gz 24.3 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for adbcbridge 0.1.3
File
adbcbridge-0.1.3-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
adbcbridge-0.1.3-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl Python 3 none Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details
adbcbridge-0.1.3-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl Python 3 none Linux glibc 2.28+ ARM64, Linux glibc 2.17+ ARM64 Details
adbcbridge-0.1.3-py3-none-macosx_14_0_arm64.whl Python 3 none macOS 14.0+ ARM64 Details

Total release size: 810.3 kB

Release files / adbcbridge-0.1.3.tar.gz

Download URL adbcbridge-0.1.3.tar.gz
Size 24.3 kB
Tags Source
SHA-256 checksum
How to use checksums
ccdd4f7a1607e99d75b08f929e1e46eb23ba7a5be7aa089dc4e5c53de4ae651a
BLAKE2b-256 checksum
How to use checksums
d453cf2e56d0d5973b1fd747d69c4dd9bb3ba80256db7f24aa374794edc326f2
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 Sep 15, 2026.

Transparency log

Release files / adbcbridge-0.1.3-py3-none-win_amd64.whl

Download URL adbcbridge-0.1.3-py3-none-win_amd64.whl
Size 152.2 kB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
a91754490102d6a498640587cd602281ee04b80dab76593be7f44b8fdb4574a2
BLAKE2b-256 checksum
How to use checksums
0746e33c06150f522758784f93af9a5d194b3e966c40b9dcd94f577e457fb36c
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 Sep 15, 2026.

Transparency log

Release files / adbcbridge-0.1.3-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL adbcbridge-0.1.3-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 231.0 kB
Tags Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 Python 3
SHA-256 checksum
How to use checksums
e393a3c44098277f4d9ca1925cde9c4989f14a6aec80ca38a766d3363a51f05c
BLAKE2b-256 checksum
How to use checksums
d61aa39454d51feccd6fec76efea17ef09d23880750b31c8e699e5ba54f9d836
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 Sep 15, 2026.

Transparency log

Release files / adbcbridge-0.1.3-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL adbcbridge-0.1.3-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 224.5 kB
Tags Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 Python 3
SHA-256 checksum
How to use checksums
a0fdd50a724a457721d2c04eb540f78996c39a02264d161e2b0ef7b0ff662515
BLAKE2b-256 checksum
How to use checksums
488d49f3bb058bf779859c59c3297109fce7708b9cbdb3dbe42239d27768852b
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 Sep 15, 2026.

Transparency log

Release files / adbcbridge-0.1.3-py3-none-macosx_14_0_arm64.whl

Download URL adbcbridge-0.1.3-py3-none-macosx_14_0_arm64.whl
Size 178.2 kB
Tags Python 3 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
3ea9037322931dc4bc0f7a03ace8ab9c4f2da24f26a210586d1f8e000ebfa5be
BLAKE2b-256 checksum
How to use checksums
f249e195a104b857afbdf6a00e756cd13d7f33da9f8f2774a33fc4b05e92dc55
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 Sep 15, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.3 This release

5 release files

0.1.2

5 release files

0.1.1

5 release files

0.1.0

5 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page