ITADN
anentropic/adbc-poolhouse
README.md

adbc-poolhouse

[ Docs ]

Connection pooling for ADBC drivers from typed warehouse configs.

One config in, one pool out — create_pool(SnowflakeConfig(...)) returns a ready-to-use SQLAlchemy QueuePool.

Installation

pip install adbc-poolhouse

Driver extras are available for each supported warehouse (BigQuery, DuckDB, FlightSQL, PostgreSQL, Snowflake, SQLite). See the documentation for the full list.

Quick example

The example below uses DuckDB — no credentials or running server required.

from adbc_poolhouse import DuckDBConfig, create_pool, close_pool

# File-backed database (connections share the same file)
config = DuckDBConfig(database="/tmp/warehouse.db")
pool = create_pool(config)

with pool.connect() as conn:
    cursor = conn.cursor()
    cursor.execute("SELECT 42 AS answer")
    row = cursor.fetchone()
    print(row)  # (42,)

close_pool(pool)

pool.connect() checks out a connection from the pool and returns it when the with block exits. close_pool(pool) drains the pool and closes the underlying ADBC source connection.

Supported warehouses

PyPI drivers: BigQuery, DuckDB, FlightSQL, PostgreSQL, Snowflake, SQLite

Foundry-distributed drivers: ClickHouse, Databricks, MSSQL / Azure SQL / Fabric, MySQL, Redshift, Trino

License

MIT