Skip to main content

asyncmy - A fast asyncio MySQL driver

image image pypi ci

Introduction

asyncmy is a fast asyncio MySQL driver, which reuse most of pymysql and rewrite core with cython to speedup.

Benchmark

The result comes from benchmark, we can know asyncmy performs well when compared to other drivers.

Install

Just install from pypi:

> pip install asyncmy

Usage

Use connect

from asyncmy import connect
from asyncmy.cursors import DictCursor
import asyncio


async def run():
    conn = await connect()
    async with conn.cursor(cursor=DictCursor) as cursor:
        await cursor.execute("create database if not exists test")
        await cursor.execute(
            """CREATE TABLE if not exists test.asyncmy
    (
        `id`       int primary key auto_increment,
        `decimal`  decimal(10, 2),
        `date`     date,
        `datetime` datetime,
        `float`    float,
        `string`   varchar(200),
        `tinyint`  tinyint
    )"""
        )


if __name__ == '__main__':
    asyncio.run(run())

Use pool

import asyncmy
import asyncio


async def run():
    pool = await asyncmy.create_pool()
    async with pool.acquire() as conn:
        async with conn.cursor() as cursor:
            await cursor.execute("SELECT 1")
            ret = await cursor.fetchone()
            assert ret == (1,)


if __name__ == '__main__':
    asyncio.run(run())

ThanksTo

  • pymysql,a pure python MySQL client.

License

This project is licensed under the Apache-2.0 License.

Metadata

Release files for asyncmy 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for asyncmy 0.1.2
File Size Uploaded
asyncmy-0.1.2.tar.gz 42.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for asyncmy 0.1.2
File Interpreter ABI Platform
asyncmy-0.1.2-cp39-cp39-manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details

Total release size: 2.7 MB

Release files / asyncmy-0.1.2.tar.gz

Download URL asyncmy-0.1.2.tar.gz
Size 42.8 kB
Tags Source
SHA-256 checksum
How to use checksums
fbef6561120091ca85c7fab83ad55a2dadad89a71358a7d64380119ad6113825
BLAKE2b-256 checksum
How to use checksums
a3fded6dd9ffad299f26b182b3ec039e2592eaf20e5f3814304a2042802347a5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

Release files / asyncmy-0.1.2-cp39-cp39-manylinux2014_x86_64.whl

Download URL asyncmy-0.1.2-cp39-cp39-manylinux2014_x86_64.whl
Size 2.7 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
c08ee81eabe48380a917a6a23a2dc1820d7d8b4570dce8104ac19b8557f330a2
BLAKE2b-256 checksum
How to use checksums
03e2efa427b63a02f059694d23a30c3b7e83252f025fcab7b83c70be22b01412
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page