ページ内ナビ
概要
asyncpgはPythonのasyncio向けに設計されたPostgreSQL client libraryです。PostgreSQL server protocolを直接実装し、prepared statement、cursor、型変換、connection poolなどを非同期APIで扱えます。
特徴と向いている用途
公式資料に基づく紹介・実機未検証 · 内容確認日:
主な特徴
asyncio向けAPIでPostgreSQL connectionとqueryを扱う
asyncpg.connect()で非同期connectionを作成し、fetch()・fetchrow()・execute()などでqueryを実行します。PostgreSQL protocolを直接扱う設計で、DB-APIのgeneric facadeを介さずPostgreSQL固有機能へアクセスできます。
出典:[2]
prepared statement・cursor・複合型やarrayのcodecを利用する
prepared statement、scrollable cursor、query resultの部分iterationに加え、composite typeやarrayの自動encode/decode、custom type codecを提供します。connection poolもasync application向けに利用できます。
出典:[2]
向いている用途
PostgreSQL I/Oが中心のasync Python backendに向く
asyncioベースのWeb/API serverやevent-driven serviceで、PostgreSQLへの待ち時間をasync taskとして扱い、driver layerを明示的に制御したい場合に適します。
出典:[2]
導入前の確認
参考にした公式資料
- [1]MagicStack/asyncpg — GitHub repository(2026-10-06)
- [2]asyncpg 0.31.0 — README(2026-10-06)
- [3]asyncpg 0.31.0 — setup.py(2026-10-06)
- [4]asyncpg 0.31.0 release(2026-10-06)
- [5]asyncpg Apache-2.0 license(2026-10-06)
編集部からの補足
PostgreSQL専用としてprotocolや型機能へ直接アクセスできる点が魅力です。ORMやgeneric DB abstractionが不要なasync serviceでは特に扱いやすい一方、pool sizeやtransaction境界はapplication側で明示的に設計してください。
3ステップで試す
- 1
asyncpg 0.31.0を導入する
確認対象の安定版を固定して導入します。asyncpg 0.31.0はPython 3.9以上が必要です。
python -m pip install "asyncpg==0.31.0" - 2
検証用PostgreSQLの接続先を指定する
USER・PASSWORD・HOST・DBNAMEを、変更してよい検証用PostgreSQLの値へ置き換えます。実credentialをrepositoryへ保存しないでください。
export DATABASE_URL='postgresql://USER:PASSWORD@HOST:5432/DBNAME' - 3
asyncioからread-only queryを実行する
read-onlyなSELECTでconnectionとquery実行を確認します。schemaやdataは変更しません。
python - <<'PY' import asyncio import os import asyncpg async def main(): conn = await asyncpg.connect(os.environ['DATABASE_URL']) try: print(await conn.fetchval('select version()')) finally: await conn.close() asyncio.run(main()) PY
成長
成長の推移 · 直近30日
8,098 Stars
推移データを蓄積中です。
Built with
カテゴリとタグ
GitHubデータ
GitHubのデータGitHubの詳細データを見る
GitHub Topics
- async-programming
- async-python
- asyncio
- database-driver
- high-performance
- postgresql
- python
- python-3
- Stars
- 8,098
- Forks
- 472
- Watchers
- 104
- Open Issues
- 274
- Contributors
- 105
- 所有者種別
- Organization
- 主要言語
- Python
- ライセンス
- Apache-2.0
- リポジトリ最終更新
- 2026/10/05
関連情報
関連記事を投稿するこのOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- sqlc18,348 Stars
共通タグ 3件 · 共通カテゴリ 2件
SQLをsource of truthにして型安全なdata-access codeを生成するSQL compiler
Go - sqlx17,743 Stars
共通タグ 3件 · 共通カテゴリ 2件
database/sql互換を保ったままStructScan・Named Queryを追加するGo DB拡張
Go - Ent17,204 Stars
共通タグ 3件 · 共通カテゴリ 2件
Schema as Codeから型安全なquery APIを生成するGo Entity Framework
Go - Go MySQL Driver15,278 Stars
共通タグ 3件 · 共通カテゴリ 2件
標準database/sqlからMySQL・MariaDBへ接続するpure Go driver
Go - Diesel14,193 Stars
共通タグ 3件 · 共通カテゴリ 2件
Rustの型システムでSQL queryとschemaを検証するORM・Query Builder
Rust - SeaORM9,914 Stars
共通タグ 3件 · 共通カテゴリ 2件
非同期query・relation・migrationをまとめて扱うRust向けrelational ORM
Rust
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。