adbc-driver-postgresql
A libpq-based ADBC driver for working with PostgreSQL.
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-postgresqluv
uv add adbc-driver-postgresqlpoetry
poetry add adbc-driver-postgresqlInstalling 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
More Database packages
psycopg2-binary is a PostgreSQL database…
copyleft · top 1,000 on PyPI
redisPython client library for connecting to and…
permissive · top 1,000 on PyPI
ydbYDB Python SDK is the official client library…
permissive · top 1,000 on PyPI
snowflake-connector-pythonConnects Python applications to Snowflake data…
permissive · top 1,000 on PyPI
sqlparsesqlparse tokenizes SQL text into a tree of…
permissive · top 1,000 on PyPI
dbt-adaptersProvides base adapter protocols and shared…
permissive · top 1,000 on PyPI
adbc-driver-snowflakeProvides a DBAPI 2.0-compatible interface to…
permissive · top 15,000 on PyPI
adbc-driver-sqliteProvides a DBAPI 2.0-compatible Python…
permissive · top 5,000 on PyPI
pyadomdPyadomd provides a Python interface to query…
permissive · top 15,000 on PyPI
adbc-driver-flightsqlProvides a DBAPI 2.0-compatible Python…
permissive · top 15,000 on PyPI
adbc-driver-managerProvides Python bindings to load and use ADBC…
permissive · top 5,000 on PyPI
PyGreSQLPyGreSQL is a Python interface to PostgreSQL…
unclear · top 15,000 on PyPI
pg8000pg8000 is a pure-Python PostgreSQL driver that…
permissive · top 1,000 on PyPI
pgpqEncodes PyArrow RecordBatches into PostgreSQL's…
permissive · top 15,000 on PyPI
psycopg2PostgreSQL database adapter for Python that…
copyleft · top 1,000 on PyPI
pyarrowpyarrow provides Python bindings to Apache…
permissive · top 100 on PyPI