asyncpg ist eine Datenbankschnittstellenbibliothek, die speziell für PostgreSQL und Python/asyncio entwickelt wurde. asyncpg ist eine effiziente, saubere Implementierung des Binärprotokolls des PostgreSQL-Servers zur Verwendung mit asyncio
Framework von Python. Weitere Informationen zu asyncpg finden Sie in einem einführenden Blogbeitrag.
asyncpg erfordert Python 3.8 oder höher und wird für die PostgreSQL-Versionen 9.5 bis 17 unterstützt. Andere PostgreSQL-Versionen oder andere Datenbanken, die das PostgreSQL-Protokoll implementieren, funktionieren möglicherweise , werden jedoch nicht aktiv getestet.
Die Projektdokumentation finden Sie hier.
In unseren Tests ist asyncpg im Durchschnitt fünfmal schneller als psycopg3.
Die obigen Ergebnisse sind ein geometrisches Mittel der Benchmarks, die mit der PostgreSQL-Client-Treiber-Benchmarking-Toolbench im Juni 2023 ermittelt wurden (klicken Sie auf das Diagramm, um alle Details anzuzeigen).
asyncpg implementiert das PostgreSQL-Serverprotokoll nativ und stellt seine Funktionen direkt zur Verfügung, anstatt sie hinter einer generischen Fassade wie der DB-API zu verstecken.
Dies ermöglicht asyncpg eine benutzerfreundliche Unterstützung für:
vorbereitete Stellungnahmen
scrollbare Cursor
Teilweise Iteration der Abfrageergebnisse
automatische Kodierung und Dekodierung zusammengesetzter Typen, Arrays und beliebiger Kombinationen davon
unkomplizierte Unterstützung für benutzerdefinierte Datentypen
asyncpg ist auf PyPI verfügbar. Wenn die GSSAPI/SSPI-Authentifizierung nicht verwendet wird, bestehen keine Abhängigkeiten. Verwenden Sie pip zur Installation:
$ pip asyncpg installieren
Wenn Sie eine GSSAPI/SSPI-Authentifizierung benötigen, verwenden Sie:
$ pip install 'asyncpg[gssauth]'
Weitere Einzelheiten finden Sie in der Dokumentation.
import asyncioimport asyncpgasync def run():conn = waiting asyncpg.connect(user='user', password='password', Database='database', host='127.0.0.1')values = waiting conn.fetch('SELECT * FROM mytable WHERE id = $1',10, )warte conn.close()asyncio.run(run())
asyncpg wird unter der Apache 2.0-Lizenz entwickelt und vertrieben.