跳转到主要内容

异步 PostgreSQL 驱动程序

项目描述

GitHub Actions status https://img.shields.io/pypi/v/asyncpg.svg

asyncpg 是专门为 PostgreSQL 和 Python/asyncio 设计的数据库接口库。asyncpg 是用于 Python 的 asyncio 框架的 PostgreSQL 服务器二进制协议的高效、简洁实现。您可以在一篇介绍性 博客文章 中了解更多关于 asyncpg 的信息。

asyncpg 需要 Python 3.8 或更高版本,并支持 PostgreSQL 版本 9.5 到 16。较旧的 PostgreSQL 版本或其他实现 PostgreSQL 协议的数据库可能可以工作,但并未进行积极测试。

文档

项目文档可以在 这里 找到。

性能

在我们的测试中,asyncpg 的平均速度比 psycopg3 快 5倍

https://raw.githubusercontent.com/MagicStack/asyncpg/master/performance.png?fddca40ab0

上述结果是使用 PostgreSQL 客户端驱动程序基准测试工具 在 2023 年 6 月获得的基准测试结果的几何平均值(点击图表查看详细信息)。

特性

asyncpg 本地实现了 PostgreSQL 服务器协议,并直接暴露其功能,而不是像 DB-API 一样隐藏在通用外观之后。

这使得 asyncpg 能够轻松支持以下功能:

  • 预编译语句

  • 可滚动游标

  • 查询结果的局部迭代

  • 复合类型、数组和这些类型的任意组合的自动编码和解码

  • 直接支持自定义数据类型

安装

asyncpg 可在 PyPI 上获取,且没有依赖项。使用 pip 进行安装

$ pip install asyncpg

基本用法

import asyncio
import asyncpg

async 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()

loop = asyncio.get_event_loop()
loop.run_until_complete(run())

许可证

asyncpg 在 Apache 2.0 许可证下开发和分发。

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分布

asyncpg-0.29.0.tar.gz (820.5 kB 查看哈希)

上传时间

构建分发

asyncpg-0.29.0-cp312-cp312-win_amd64.whl (530.3 kB 查看哈希)

上传时间 CPython 3.12 Windows x86-64

asyncpg-0.29.0-cp312-cp312-win32.whl (487.3 kB 查看哈希)

上传于 CPython 3.12 Windows x86

asyncpg-0.29.0-cp312-cp312-musllinux_1_1_x86_64.whl (3.3 MB 查看哈希)

上传于 CPython 3.12 musllinux: musl 1.1+ x86-64

asyncpg-0.29.0-cp312-cp312-musllinux_1_1_aarch64.whl (3.2 MB 查看哈希)

上传于 CPython 3.12 musllinux: musl 1.1+ ARM64

asyncpg-0.29.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.3 MB 查看哈希)

上传于 CPython 3.12 manylinux: glibc 2.17+ x86-64

asyncpg-0.29.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.2 MB 查看哈希)

上传于 CPython 3.12 manylinux: glibc 2.17+ ARM64

asyncpg-0.29.0-cp312-cp312-macosx_11_0_arm64.whl (618.0 kB 查看哈希)

上传于 CPython 3.12 macOS 11.0+ ARM64

asyncpg-0.29.0-cp312-cp312-macosx_10_9_x86_64.whl (636.3 kB 查看哈希)

上传于 CPython 3.12 macOS 10.9+ x86-64

asyncpg-0.29.0-cp311-cp311-win_amd64.whl (543.3 kB 查看哈希)

上传于 CPython 3.11 Windows x86-64

asyncpg-0.29.0-cp311-cp311-win32.whl (496.2 kB 查看哈希)

上传于 CPython 3.11 Windows x86

asyncpg-0.29.0-cp311-cp311-musllinux_1_1_x86_64.whl (3.4 MB 查看哈希)

上传于 CPython 3.11 musllinux: musl 1.1+ x86-64

asyncpg-0.29.0-cp311-cp311-musllinux_1_1_aarch64.whl (3.4 MB 查看哈希)

上传于 CPython 3.11 musllinux: musl 1.1+ ARM64

asyncpg-0.29.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.8 MB 查看哈希值)

上传时间 CPython 3.11 manylinux: glibc 2.17+ x86-64

asyncpg-0.29.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.8 MB 查看哈希值)

上传时间 CPython 3.11 manylinux: glibc 2.17+ ARM64

asyncpg-0.29.0-cp311-cp311-macosx_11_0_arm64.whl (638.7 kB 查看哈希值)

上传时间 CPython 3.11 macOS 11.0+ ARM64

asyncpg-0.29.0-cp311-cp311-macosx_10_9_x86_64.whl (653.1 kB 查看哈希值)

上传时间 CPython 3.11 macOS 10.9+ x86-64

asyncpg-0.29.0-cp310-cp310-win_amd64.whl (553.1 kB 查看哈希值)

上传时间 CPython 3.10 Windows x86-64

asyncpg-0.29.0-cp310-cp310-win32.whl (503.3 kB 查看哈希值)

上传时间 CPython 3.10 Windows x86

asyncpg-0.29.0-cp310-cp310-musllinux_1_1_x86_64.whl (3.2 MB 查看哈希值)

上传时间 CPython 3.10 musllinux: musl 1.1+ x86-64

asyncpg-0.29.0-cp310-cp310-musllinux_1_1_aarch64.whl (3.2 MB 查看哈希值)

上传时间 CPython 3.10 musllinux: musl 1.1+ ARM64

asyncpg-0.29.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.7 MB 查看哈希值)

上传时间 CPython 3.10 manylinux: glibc 2.17+ x86-64

asyncpg-0.29.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.7 MB 查看哈希值)

上传时间 CPython 3.10 manylinux: glibc 2.17+ ARM64

asyncpg-0.29.0-cp310-cp310-macosx_11_0_arm64.whl (650.8 kB 查看哈希值)

上传于 CPython 3.10 macOS 11.0+ ARM64

asyncpg-0.29.0-cp310-cp310-macosx_10_9_x86_64.whl (669.3 kB 查看哈希值)

上传于 CPython 3.10 macOS 10.9+ x86-64

asyncpg-0.29.0-cp39-cp39-win_amd64.whl (567.2 kB 查看哈希值)

上传于 CPython 3.9 Windows x86-64

asyncpg-0.29.0-cp39-cp39-win32.whl (515.9 kB 查看哈希值)

上传于 CPython 3.9 Windows x86

asyncpg-0.29.0-cp39-cp39-musllinux_1_1_x86_64.whl (3.3 MB 查看哈希值)

上传于 CPython 3.9 musllinux: musl 1.1+ x86-64

asyncpg-0.29.0-cp39-cp39-musllinux_1_1_aarch64.whl (3.3 MB 查看哈希值)

上传于 CPython 3.9 musllinux: musl 1.1+ ARM64

asyncpg-0.29.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.8 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ x86-64

asyncpg-0.29.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.8 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ ARM64

asyncpg-0.29.0-cp39-cp39-macosx_11_0_arm64.whl (665.0 kB 查看哈希值)

上传于 CPython 3.9 macOS 11.0+ ARM64

asyncpg-0.29.0-cp39-cp39-macosx_10_9_x86_64.whl (687.0 kB 查看哈希值)

上传于 CPython 3.9 macOS 10.9+ x86-64

asyncpg-0.29.0-cp38-cp38-win_amd64.whl (568.0 kB 查看哈希值)

上传于 CPython 3.8 Windows x86-64

asyncpg-0.29.0-cp38-cp38-win32.whl (516.4 kB 查看哈希值)

上传时间 CPython 3.8 Windows x86

asyncpg-0.29.0-cp38-cp38-musllinux_1_1_x86_64.whl (3.7 MB 查看哈希值)

上传时间 CPython 3.8 musllinux: musl 1.1+ x86-64

asyncpg-0.29.0-cp38-cp38-musllinux_1_1_aarch64.whl (3.6 MB 查看哈希值)

上传时间 CPython 3.8 musllinux: musl 1.1+ ARM64

asyncpg-0.29.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.2 MB 查看哈希值)

上传时间 CPython 3.8 manylinux: glibc 2.17+ x86-64

asyncpg-0.29.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.2 MB 查看哈希值)

上传时间 CPython 3.8 manylinux: glibc 2.17+ ARM64

asyncpg-0.29.0-cp38-cp38-macosx_11_0_arm64.whl (661.2 kB 查看哈希值)

上传时间 CPython 3.8 macOS 11.0+ ARM64

asyncpg-0.29.0-cp38-cp38-macosx_10_9_x86_64.whl (678.3 kB 查看哈希值)

上传时间 CPython 3.8 macOS 10.9+ x86-64

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面