asyncpg v0.31.0 Release Notes
Release Date: 2025-11-24 // 7 months ago-
Enable Python 3.14 with experimental subinterpreter/freethreading
👌 support.👌 Improvements
➕ Add Python 3.14 support, experimental subinterpreter/freethreading support (#1279)
(by @elprans in 9e42642)Avoid performing type introspection on known types (#1243)
(by @elprans in 5c9986c)0️⃣ Make
prepare()not use named statements by default when cache is disabled (#1245)
(by @elprans in 5b14653)Implement connection service file functionality (#1223)
(by @AndrewJackson2020 in 1d63bb1)
🛠 Fixes
🛠 Fix multi port connection string issue (#1222)
(by @AndrewJackson2020 in 01c0db7)Avoid leaking connections if _can_use_connection fails (#1269)
(by @yuliy-openai in e94302d)
Other
Previous changes from v0.30.0
-
👌 Support Python 3.13 and PostgreSQL 17.
👌 Improvements
Implement GSSAPI authentication
(by @eltoder in 1d4e568 for #1122)Implement SSPI authentication
(by @eltoder in 1aab209 for #1128)➕ Add initial typings
(by @bryanforbes in d42432b for #1127)👍 Allow building with Cython 3
(by @musicinmybrain in 258d8a9 for #1101)📄 docs: fix connection pool close call (#1125)
(by @paulovitorweb in e848814 for #1125)➕ Add support for the
sslnegotiationparameter
(by @elprans in afdb05c for #1187)🏗 Test and build on Python 3.13
(by @elprans in 3aa9894 for #1188)👌 Support PostgreSQL 17
(by @elprans in cee97e1 for #1189)
(by @MeggyCal in aa2d0e6 for #1185)Add
fetchmanyto execute many and return rows
(by @rossmacarthur in 73f2209 for #1175)➕ Add
connectkwarg to Pool to better support GCP's CloudSQL
(by @d1manson in 3ee19ba for #1170)👍 Allow customizing connection state reset (#1191)
(by @elprans in f6ec755 for #1191)
🛠 Fixes
s/quote/quote_plus/ in the note about DSN part quoting
(by @elprans in 1194a8a for #1151)Use asyncio.run() instead of run_until_complete()
(by @eltoder in 9fcddfc for #1140)Require async_timeout for python < 3.11 (#1177)
(by @Pliner in 327f2a7 for #1177)👍 Allow testing with uvloop on Python 3.12 (#1182)
(by @musicinmybrain in 597fe54 for #1182)Mark pool-wrapped connection coroutine methods as coroutines
(by @elprans in 636420b for #1134)handle
Noneparameters incopy_from_query, returningNULL
(by @fobispotc in 259d16e for #1180)fix: return the pool from async_init_ if it's already initialized (#1104)
(by @guacs in 7dc5872 for #1104)Replace obsolete, unsafe
Py_TRASHCAN_SAFE_BEGIN/END(#1150)
(by @musicinmybrain in 11101c6 for #1150)