asyncmy
The fastest asyncio MySQL/MariaDB driver for Python
What it is and what it does
asyncmy is an asyncio MySQL/MariaDB driver that optimizes the protocol layer for speed while keeping the aiomysql API surface familiar. It supports both text and binary (server-side prepared statement) protocols, built-in connection pooling, and replication stream reading. The core optimization is bulk packet parsing—rows are decoded directly from the receive buffer without intermediate Python objects, and numeric/temporal columns parse natively from wire bytes.
Typical use is either single-connection queries via `asyncmy.connect()` or high-concurrency workloads via `asyncmy.create_pool()`. The binary protocol is opt-in (via `conn.prepare()` or transparent mode with `stmt_cache_size`), offering another ~35% speedup for repeated queries by eliminating client-side escaping and text parsing. Type stubs are included for mypy/Pylance integration.
Use it for:
- High-throughput async web services (FastAPI, Starlette) needing fast pooled MySQL/MariaDB access without blocking.
- Bulk data pipelines reading large result sets where the 2.1x speedup over mysqlclient matters.
- Applications using rotating credentials (e.g., AWS RDS IAM tokens) via the password_creator callback.
- ORM-backed services that benefit from transparent prepared-statement caching without code changes.
- Real-time analytics or replication monitoring via the BinLogStream replication protocol support.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
asyncmy is an asyncio-native MySQL/MariaDB driver providing fast asynchronous database access with an aiomysql-compatible API, built on an optimized protocol core.
Yes, if you need async MySQL/MariaDB access and can tolerate medium install friction (compiled extensions). The performance gains are substantial and well-benchmarked, the API is familiar to aiomysql users, and the maintenance signal is strong (active repo, recent release, no vulnerabilities). Windows users should factor in the C++ Build Tools prerequisite. Not necessary if you're using synchronous-only code or already satisfied with aiomysql's throughput.
Install
asyncmy on PyPI
pip
pip install asyncmyuv
uv add asyncmypoetry
poetry add asyncmyInstalling asyncmy
Before you install
Medium install friction due to compiled extensions. Prebuilt wheels available for Python 3.10–3.12 across common platforms (macOS, Linux, Windows), but Windows users must install Microsoft C++ Build Tools before pip install. Repository is actively maintained with recent release (2 days old) and no known vulnerabilities.
License in practice
Licensed under Apache-2.0 (permissive), allowing commercial and private use with minimal restrictions—suitable for most production deployments.
Quickstart
import asyncio
import asyncmy
async def main():
conn = await asyncmy.connect(host="localhost", user="root", password="")
async with conn.cursor() as cursor:
await cursor.execute("SELECT 1")
result = await cursor.fetchone()
await conn.ensure_closed()
asyncio.run(main())
Requires Python ≥3.9. On Windows, Microsoft C++ Build Tools must be installed before pip install to compile extensions.
Verify before relying
- Whether the stated performance improvements (2.1x faster than mysqlclient, 5x faster than aiomysql) hold for typical workloads outside the benchmark suite.
- Compatibility and performance impact of the transparent prepared-statement cache mode with different ORMs.
- Whether rotating credentials via password_creator work reliably across all pool reconnection scenarios.
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 2 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 895,220/month — #4,790 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: asyncmy-0.2.14-cp310-cp310-macosx_10_9_x86_64.whl; asyncmy-0.2.14-cp310-cp310-macosx_11_0_arm64.whl; asyncmy-0.2.14-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; asyncmy-0.2.14-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; asyncmy-0.2.14-cp310-cp310-musllinux_1_2_aarch64.whl; asyncmy-0.2.14-cp310-cp310-musllinux_1_2_x86_64.whl; asyncmy-0.2.14-cp310-cp310-win32.whl; asyncmy-0.2.14-cp310-cp310-win_amd64.whl; asyncmy-0.2.14-cp311-cp311-macosx_10_9_x86_64.whl; asyncmy-0.2.14-cp311-cp311-macosx_11_0_arm64.whl; asyncmy-0.2.14-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; asyncmy-0.2.14-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; asyncmy-0.2.14-cp311-cp311-musllinux_1_2_aarch64.whl; asyncmy-0.2.14-cp311-cp311-musllinux_1_2_x86_64.whl; asyncmy-0.2.14-cp311-cp311-win32.whl; asyncmy-0.2.14-cp311-cp311-win_amd64.whl; asyncmy-0.2.14-cp312-cp312-macosx_10_13_x86_64.whl; asyncmy-0.2.14-cp312-cp312-macosx_11_0_arm64.whl; asyncmy-0.2.14-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; asyncmy-0.2.14-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Keywords: driver, asyncio, mysql
Tags
More Database packages
psycopg2-binary is a PostgreSQL database…
copyleft · top 1,000 on PyPI
redisPython client library for connecting to and…
permissive · top 1,000 on PyPI
ydbYDB Python SDK is the official client library…
permissive · top 1,000 on PyPI
snowflake-connector-pythonConnects Python applications to Snowflake data…
permissive · top 1,000 on PyPI
sqlparsesqlparse tokenizes SQL text into a tree of…
permissive · top 1,000 on PyPI
dbt-adaptersProvides base adapter protocols and shared…
permissive · top 1,000 on PyPI
asyncmy2asyncmy2 is a fast asyncio-based MySQL/MariaDB…
permissive · top 15,000 on PyPI
hopsworks-aiomysqlAsync MySQL database driver for Python asyncio…
permissive · top 15,000 on PyPI
aiomysqlaiomysql provides async/await access to MySQL…
permissive · top 5,000 on PyPI
asynchasynch is an asynchronous ClickHouse driver…
permissive · top 5,000 on PyPI
databasesProvides async database access for PostgreSQL,…
permissive · top 5,000 on PyPI
aiosqlLoad SQL queries from files and call them as…
permissive · top 15,000 on PyPI
PyMySQLPyMySQL is a pure-Python MySQL and MariaDB…
permissive · top 1,000 on PyPI
mysqlclientmysqlclient provides a Python interface to…
copyleft · top 1,000 on PyPI
acsyllaAcsylla is an async Python client library for…
permissive · top 15,000 on PyPI
aioodbcaioodbc provides async/await access to ODBC…
permissive · top 5,000 on PyPI