asyncpg は、 PostgreSQL および Python/asyncio 用に特別に設計されたデータベース インターフェイス ライブラリです。 asyncpg は、Python のasyncio
フレームワークで使用する PostgreSQL サーバー バイナリ プロトコルの効率的でクリーンな実装です。 asyncpg の詳細については、ブログの紹介記事をご覧ください。
asyncpg には Python 3.8 以降が必要で、PostgreSQL バージョン 9.5 ~ 17 でサポートされています。他の PostgreSQL バージョンまたは PostgreSQL プロトコルを実装する他のデータベースも動作する可能性がありますが、積極的にテストされていません。
プロジェクトのドキュメントはここにあります。
私たちのテストでは、asyncpg は psycopg3 よりも平均して5 倍高速でした。
上記の結果は、2023 年 6 月に PostgreSQL クライアント ドライバー ベンチマーク ツールベンチで取得したベンチマークの幾何平均です (グラフをクリックすると詳細が表示されます)。
asyncpg は PostgreSQL サーバー プロトコルをネイティブに実装し、その機能を DB-API のような汎用的なファサードの背後に隠すのではなく、直接公開します。
これにより、asyncpg は以下を使いやすくサポートできるようになります。
準備されたステートメント
スクロール可能なカーソル
クエリ結果の部分的な反復
複合型、配列、およびそれらの組み合わせの自動エンコードおよびデコード
カスタム データ型の直接的なサポート
asyncpg は PyPI で利用できます。 GSSAPI/SSPI 認証を使用しない場合、依存関係はありません。 pip を使用してインストールします。
$ pip インストール asyncpg
GSSAPI/SSPI 認証が必要な場合は、次を使用します。
$ pip install 'asyncpg[gssauth]'
詳細については、ドキュメントを参照してください。
import asyncioimport asyncpgasync def run():conn = await asyncpg.connect(user='user'、password='password'、database='database'、host='127.0.0.1')values = await conn.fetch('SELECT * FROM mytable WHERE id = $1',10, )await conn.close()asyncio.run(run())
asyncpg は、Apache 2.0 ライセンスに基づいて開発および配布されています。