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
Links
License
MIT