skillfed

adbc-driver-postgresql

A libpq-based ADBC driver for working with PostgreSQL.

adbc-driver-postgresql v1.12.0 1.8M downloads/30d#3,559 on PyPI621
Permissive license Apache-2.0 Active released

What it is and what it does

adbc-driver-postgresql is a Python driver that wraps the PostgreSQL ADBC driver through the adbc-driver-manager, exposing a DBAPI 2.0-compatible interface for querying PostgreSQL. It enables direct Arrow table exchange, allowing efficient columnar data retrieval without intermediate serialization. The package is built on top of libpq and requires the native libadbc_driver_postgresql library to be present at install time.

The driver is intended for applications that need tight integration with Arrow-based data pipelines or that benefit from columnar data representation. It follows standard DBAPI 2.0 conventions (connect, cursor, execute, fetch) while adding Arrow-specific methods like fetch_arrow_table(). Installation requires setting an environment variable to locate the compiled driver library, making setup more involved than pure-Python database packages.

Use it for:

  • Query PostgreSQL and retrieve results as Arrow tables for use in data science workflows with pandas or polars.
  • Build ETL pipelines that move data from PostgreSQL to Arrow-based systems without intermediate conversion.
  • Integrate PostgreSQL as a data source in Arrow-native applications or analytical frameworks.
  • Execute SQL queries with DBAPI 2.0 semantics while leveraging Arrow's columnar performance benefits.
  • Develop applications requiring efficient bulk data transfer between PostgreSQL and in-memory Arrow structures.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Provides a DBAPI 2.0-compatible Python interface to PostgreSQL via the ADBC driver manager, enabling Arrow-native data exchange with PostgreSQL databases.

Yes, if you need Arrow-native PostgreSQL access and are willing to manage the native library dependency. The package is actively maintained, permissively licensed, and solves a specific use case (columnar data exchange with PostgreSQL). Install friction is moderate due to the compiled dependency and Python >=3.10 requirement, but the tradeoff is reasonable for Arrow-integrated workflows. Not necessary if you only need standard DBAPI access without Arrow benefits.

Install

adbc-driver-postgresql on PyPI

pip

pip install adbc-driver-postgresql

uv

uv add adbc-driver-postgresql

poetry

poetry add adbc-driver-postgresql

Installing adbc-driver-postgresql

Before you install

Medium install friction due to platform-specific wheels and a compiled native dependency. The package requires the adbc-driver-manager runtime dependency and depends on a pre-built libadbc_driver_postgresql library. Maintenance is active with recent releases and an engaged repository.

License in practice

Licensed under Apache-2.0 (permissive), allowing commercial and private use with minimal restrictions. No license-related barriers to adoption.

Quickstart

import adbc_driver_postgresql.dbapi

uri = "postgresql://postgres:password@localhost:5432/postgres"
with adbc_driver_postgresql.dbapi.connect(uri) as conn:
    with conn.cursor() as cur:
        cur.execute("SELECT 1")
        print(cur.fetch_arrow_table())

Requires Python >=3.10 and the libadbc_driver_postgresql native library; ADBC_POSTGRESQL_LIBRARY environment variable must be set to the library path during installation.

Verify before relying

  • Whether PyArrow is required or optional for the DBAPI interface
  • Performance characteristics compared to standard psycopg2 or asyncpg
  • Support for connection pooling or async operations

Package facts

License Apache-2.0 (permissive)
Python support supports the current Python release (>=3.10)
Install friction medium — platform-specific wheel
Runtime dependencies 2 — adbc-driver-manager, importlib-resources
Maintenance actively maintained — 17 days since the last release
Last repo commit
First released
Downloads 1,788,524/month — #3,559 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: adbc_driver_postgresql-1.12.0-py3-none-macosx_10_15_x86_64.whl; adbc_driver_postgresql-1.12.0-py3-none-macosx_11_0_arm64.whl; adbc_driver_postgresql-1.12.0-py3-none-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl; adbc_driver_postgresql-1.12.0-py3-none-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl; adbc_driver_postgresql-1.12.0-py3-none-win_amd64.whl

Tags

postgresql python driveradbc postgresql connectordbapi postgresql interfacearrow postgresql integrationlibpq python bindingpostgresql arrow data exchangeadbc driver manager postgresql
arrow-integrationadbc-drivercolumnar-data

More Database packages