adbc-driver-postgresql
A libpq-based ADBC driver for working with PostgreSQL.
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- 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.
- 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.
License · maintenance · safety
Apache-2.0 (permissive) — Licensed under Apache-2.0 (permissive), allowing commercial and private use with minimal restrictions. No license-related barriers to adoption.
last release 2026-07-28 (17 days) · last repo commit 2026-08-14 · 621 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 1,788,524 downloads/mo, #3,559 on PyPI
Alternatives
Verify before relying
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())- 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
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 on it.
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
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.
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.
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())
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 packagesadbc-driver-managerimportlib-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
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “postgresql python driver”
- adbc-driver-postgresqlProvides a DBAPI 2.0-compatible Python interface to PostgreSQL via…
- pg8000pg8000 is a pure-Python PostgreSQL driver that implements the DB-API…
- asyncpgasyncpg is an asyncio-native PostgreSQL client library that executes…
Give your agent the search over MCP, or paste the wish link into any chat.
More Database packages
psycopg2-binary is a PostgreSQL database adapter for Python that implements the DB API 2.0 specification, enabling Python applications to connect to and query PostgreSQL databases with thread-safe concurrent operations.
Python client library for connecting to and executing commands against Redis key-value stores, supporting both synchronous and asynchronous operations.
Install it if your application needs to interact with Redis; the only prerequisite is a running Redis server instance.
YDB Python SDK is the official client library for connecting to and querying YDB databases from Python applications.
Install it if you need to connect Python applications to YDB databases.
Connects Python applications to Snowflake data warehouses using the DB API 2.0 specification, enabling SQL queries, data transfers, and warehouse operations.
sqlparse tokenizes SQL text into a tree of statements, clauses, and expressions, and provides functions to split scripts, format queries, and inspect parsed tokens without validating dialect or syntax.
Install it if you need to manipulate, format, or analyze SQL text programmatically.
Provides base adapter protocols and shared functionality that database adapters use to integrate with dbt-core, handling connections, dialect translation, relation caching, and core interface management.
See also adbc-driver-snowflake · adbc-driver-sqlite · pyadomd · adbc-driver-flightsql · adbc-driver-manager · PyGreSQL · pg8000 · pgpq · psycopg2 · pyarrow