asyncpg is a software project on GitHub that provides an asynchronous PostgreSQL driver for Python. It’s useful if you’re building Python applications that need async database access to PostgreSQL.
Project status
- Actively maintained: The project has recent GitHub-tagged updates (e.g., v0.31.0 on 2025-11-24, v0.30.0 on 2024-10-20), with continued feature work plus bug fixes.
- Update cadence: Based on the tag dates provided, updates have landed roughly ~11–14 months apart over the last couple of versions (v0.30.0 → v0.31.0; v0.29.0 → v0.30.0), suggesting a fairly steady maintenance/evolution rhythm.
AI summary generated 3 weeks ago
Recent updates
v0.31.0
6 months agoThis release adds experimental Python 3.14 support including subinterpreter/freethreading capabilities, implements connection service file handling, and drops support for EOL Python 3.8. Several bug fixes address connection leaks and multi-port connection string parsing, and a few behavioral changes may require code updates when statement caching is disabled.
BreakingFeaturesv0.30.0
10/20/2024v0.30.0 expands asyncpg's compatibility envelope with Python 3.13 and PostgreSQL 17, while adding GSSAPI/SSPI authentication, new batch execution APIs, and pool customization hooks. The release also modernizes docs/CI and ships initial typing information for the package.
Featuresv0.29.0
11/5/2023v0.29.0 is a maintenance-heavy release that raises the minimum Python version to 3.8, adds PostgreSQL 16 and Python 3.12 support, and introduces several new client capabilities such as query logging, `target_session_attrs` in URLs, tuple-format composite codecs, `WHERE` support for COPY-to helpers, and infinity numeric handling. It also includes a number of connection/authentication, pool, and statement-cache fixes that improve correctness on newer runtimes and server versions.
BreakingFeaturesv0.28.0
7/7/2023v0.28.0 is a maintenance-oriented release that adds libpq-style connection routing (`target_session_attrs`), `READ UNCOMMITTED` isolation support, and `Pool.is_closing()`, while also fixing SCRAM parsing and no-home-directory handling. The diff also shows a fairly large packaging/build migration to `pyproject.toml` and updated CI/build tooling that goes beyond the short release notes.
Featuresv0.27.0
10/26/2022asyncpg 0.27.0 raises the minimum Python version to 3.7, adds support for Python 3.11 and PostgreSQL 15, and updates `Record` reprs to reflect the concrete record subclass. The release also refreshes packaging and CI/build tooling to produce newer wheels, including arm64 builds.
BreakingFeaturesv0.26.0
7/7/2022v0.26.0 is a connection-focused release that adds direct TLS support, lets password callbacks return awaitables, and extends pool fetch APIs with customizable record types. It also improves domain type introspection and hardens authentication error handling, alongside a packaging metadata cleanup.
Featuresv0.25.0
11/16/2021v0.25.0 is a feature-focused release centered on PostgreSQL 14/multirange support, richer pool and prepared-statement APIs, and improved SSL/URI handling. The code diff also shows several internal cleanup and packaging changes, plus a few user-facing additions that were not called out in the release notes.
BreakingFeaturesv0.24.0
8/10/2021v0.24.0 is a Python 3.6+ release that adds Python 3.10 support, async-iterable COPY input, coroutine listener callbacks, DSN SSL certificate options, Pool COPY wrappers, and Range set-like helpers. It also improves server-version parsing, fixes a connection reference cycle, and updates the build/test infrastructure and bundled pgproto submodule.
BreakingFeaturesv0.23.0
5/17/2021v0.23.0 is a maintenance release focused on connection/SSL handling, transaction behavior, Py_DEBUG stability, and packaging fixes. The biggest user-visible changes are proper `sslmode=allow` behavior, support for `readonly`/`deferrable` outside serializable transactions, and an updated PostgreSQL support matrix in the docs.
v0.22.0
2/10/2021v0.22.0 is a feature-heavy asyncpg release that adds Python 3.9 support, new PostgreSQL type codecs (including `jsonpath`), custom `Record` class support, and a much faster `executemany()` implementation. It also makes `executemany()` atomic, prefers SSL by default, exposes `Pool` at the top level, and includes several connection/codecs bug fixes. This is also the last release that supports Python 3.5.
BreakingFeaturesv0.21.0
8/10/2020asyncpg 0.21.0 adds password callable support and connection termination listeners, while also tightening array decoding against malformed data and fixing COPY-in file-path handling. The release also updates CI/build infrastructure for aarch64 and refreshes the pgproto/Cython toolchain.
SecurityFeaturesv0.20.0
11/21/2019asyncpg 0.20.0 adds Python 3.8 support and improves PgBouncer compatibility, while also fixing inet-prefix decoding, SSL upgrades, connection timeout handling, and UUID codec performance. The code diff also shows substantial internal refactors in pooling, cancellation, and protocol handling beyond what the release notes describe.
Featuresv0.19.0
10/9/2019asyncpg v0.19.0 primarily adds SCRAM-SHA-256 authentication and PostgreSQL 12 support. The code diff also shows substantial protocol, cluster, and cache-management work to support the new auth flow, newer PostgreSQL server behavior, and several cleanup fixes.
Featuresv0.18.2
11/10/2018This is a patch release focused on protocol stability in asyncpg's core state machine. It reverts the ReadyForQuery regression, improves handling of Terminate/cancel/remote-close scenarios, and ensures connections closed by the server are cleaned up so pools can reclaim resources.
v0.18.1
10/31/2018asyncpg v0.18.1 is a small maintenance release focused on fixing a DSN parsing regression. There are no documented new features or breaking changes in these release notes.