asyncpgis a database interface library designed specifically for PostgreSQL and Python/asyncio. asyncpg is an efficient, clean implementation of PostgreSQL server binary protocol for use with Python's asyncio
framework. You can read more about asyncpg in an introductory blog post here .
The project documentation can be found here .
In our testing asyncpg is, on average, 3x faster than psycopg2 (and its asyncio variant -- aiopg).
The above results are a geometric mean of benchmarks obtained with PostgreSQL client driver benchmarking toolbench .
asyncpg implements PostgreSQL server protocol natively and exposes its features directly, as opposed to hiding them behind a generic facade like DB-API.
This enables asyncpg to have easy-to-use support for:
asyncpg requires Python 3.5 and is available on PyPI. Use pip to install it:
$ pip install asyncpg
import asyncio import asyncpg async def run(): conn = await asyncpg.connect(user='user', password='password', database='database', host='127.0.0.1') values = await conn.fetch('''SELECT * FROM mytable''') await conn.close() loop = asyncio.get_event_loop() loop.run_until_complete(run())
asyncpg is developed and distributed under the Apache 2.0 license.