Skip to content
A fast PostgreSQL Database Client Library for Python/asyncio.
Python C Shell Makefile
Branch: master
Clone or download

Latest commit

elprans Bump pgproto to fix compilation issues
This fixes compilation issues reported in #565 and #534.

Fixes: #534
Fixes: #565
Latest commit aa67d61 May 2, 2020


Type Name Latest commit message Commit time
Failed to load latest commit information.
.ci asyncpg v0.20.1 Jan 12, 2020
.github Allow specifying the target version when generating the release log Nov 10, 2018
asyncpg Bump pgproto to fix compilation issues May 2, 2020
docs Handle IP values with prefix in "inet" type as IPvXInterface Nov 19, 2019
tests Fix Connection class _copy_in private method Apr 23, 2020
tools Allow aliasing builtin types by name in set_builtin_type_codec() Sep 18, 2018
.coveragerc Improve test coverage for codecs, fix a few bugs found in the process Jul 20, 2016
.flake8 Pin flake8 & pycodestyle; fix style issues Nov 20, 2019
.gitignore Ignore .mypy_cache Oct 3, 2019
.gitmodules Factor out generic PostgreSQL protocol helpers into a separate package Oct 2, 2018
.travis.yml asyncpg v0.20.1 Jan 12, 2020
AUTHORS Insert copyright headers Jul 16, 2016
LICENSE Update LICENSE text to match the canonical Apache 2.0 blob Sep 12, 2017 Include .flake8 in PyPI tarball Jan 22, 2019
Makefile CI: Don't run uvloop tests on built wheels Nov 20, 2019
README.rst Add PostgreSQL 12 support Oct 7, 2019
performance.png Update performance.png (high-res version) Aug 4, 2016
pytest.ini Catch exceptions in asynchronous tasks when testing Nov 28, 2017 Pin flake8 & pycodestyle; fix style issues Nov 20, 2019


asyncpg -- A fast PostgreSQL Database Client Library for Python/asyncio

asyncpg is 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.

asyncpg requires Python 3.5 or later and is supported for PostgreSQL versions 9.2 to 12.


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:

  • prepared statements
  • scrollable cursors
  • partial iteration on query results
  • automatic encoding and decoding of composite types, arrays, and any combination of those
  • straightforward support for custom data types


asyncpg is available on PyPI and has no dependencies. Use pip to install:

$ pip install asyncpg

Basic Usage

import asyncio
import asyncpg

async def run():
    conn = await asyncpg.connect(user='user', password='password',
                                 database='database', host='')
    values = await conn.fetch('''SELECT * FROM mytable''')
    await conn.close()

loop = asyncio.get_event_loop()


asyncpg is developed and distributed under the Apache 2.0 license.

You can’t perform that action at this time.