asynch
An asyncio driver for ClickHouse with native TCP support
Decision gist · record as of 2026-08-14
Yes. asynch is actively maintained, has no known vulnerabilities, and offers a well-designed async interface to ClickHouse with Cython-optimized performance. The permissive Apache 2.0 license and broad platform support via pre-built wheels make it a low-friction choice for async Python applications that need ClickHouse connectivity. Install it if you are building async code that queries or writes to ClickHouse.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.11 or later; ClickHouse server must be running and accessible at the specified host and port.
- Medium install friction due to compiled Cython components, but binary wheels are published for Linux (x86_64/arm64), Windows, and macOS (Intel/ARM) on Python 3.11–3.13, eliminating the need for a C toolchain on supported platforms.
- The package is actively maintained with recent releases.
License · maintenance · safety
permissive license (permissive) — Licensed under Apache License 2.0, a permissive license that allows commercial use, modification, and distribution with minimal restrictions—suitable for most projects.
last release 2026-08-14 (0 days) · last repo commit 2026-08-14 · 244 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 3,335,625 downloads/mo, #2,655 on PyPI
Alternatives
Verify before relying
pip install asynch
from asynch import Connection
async def query():
async with Connection(dsn="clickhouse://user:pass@127.0.0.1:9000/db") as conn:
async with conn.cursor() as cursor:
await cursor.execute("SELECT 1")
result = await cursor.fetchone()
print(result)- Whether the Cython-compiled hot path actually matches or exceeds the performance of the synchronous C-extension driver in production workloads.
- Support for ClickHouse 24.8+ JSON columns and whether all ClickHouse data types are fully supported.
- Behavior and limitations of the connection pool under high concurrency or connection exhaustion scenarios.
What it is and what it does
asynch is an asynchronous Python driver for ClickHouse that uses native TCP protocol and compiles its hot path (streams, column codecs, connection, cursors) with Cython for performance. It provides a PEP 249-compliant API with Connection, Cursor, and DictCursor classes, supporting async/await throughout, and includes a built-in connection pool and streaming result sets for efficient memory use on large queries.
The driver handles ClickHouse's native data types, supports parameterized queries, and allows both tuple and dictionary-based inserts. It includes optional transport compression via clickhouse-cityhash, can cancel long-running queries from another task, and ships type stubs for IDE support. Binary wheels are available for modern Python versions (3.11–3.13) on Linux, Windows, and macOS, with source compilation available on other platforms.
Use it for
- Building async web services or microservices that query ClickHouse without blocking the event loop.
- Streaming large result sets from ClickHouse into memory-constrained environments using row-by-row iteration.
- Bulk inserting data into ClickHouse tables from async data pipelines or ETL workflows.
- Managing multiple concurrent ClickHouse connections via the built-in connection pool in async applications.
- Cancelling long-running analytical queries from a separate async task when they exceed time budgets.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
asynch is actively maintained, has no known vulnerabilities, and offers a well-designed async interface to ClickHouse with Cython-optimized performance. The permissive Apache 2.0 license and broad platform support via pre-built wheels make it a low-friction choice for async Python applications that need ClickHouse connectivity. Install it if you are building async code that queries or writes to ClickHouse.
Install
asynch on PyPI
Before you install
Medium install friction due to compiled Cython components, but binary wheels are published for Linux (x86_64/arm64), Windows, and macOS (Intel/ARM) on Python 3.11–3.13, eliminating the need for a C toolchain on supported platforms. The package is actively maintained with recent releases.
Requires Python 3.11 or later; ClickHouse server must be running and accessible at the specified host and port.
License in practice
Licensed under Apache License 2.0, a permissive license that allows commercial use, modification, and distribution with minimal restrictions—suitable for most projects.
Quickstart
pip install asynch
from asynch import Connection
async def query():
async with Connection(dsn="clickhouse://user:pass@127.0.0.1:9000/db") as conn:
async with conn.cursor() as cursor:
await cursor.execute("SELECT 1")
result = await cursor.fetchone()
print(result)
Verify before relying
- Whether the Cython-compiled hot path actually matches or exceeds the performance of the synchronous C-extension driver in production workloads.
- Support for ClickHouse 24.8+ JSON columns and whether all ClickHouse data types are fully supported.
- Behavior and limitations of the connection pool under high concurrency or connection exhaustion scenarios.
Package facts
| License | permissive license permissive |
| Python support | Supports the current Python release <4.0,>=3.11 |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | 3 packagesciso8601tzdatatzlocal |
| Maintenance | Actively maintained 0 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 3,335,625 / month, #2,655 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaFramework :: AsyncIOIntended Audience :: DevelopersLicense :: OSI Approved :: Apache Software LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: DatabaseTopic :: Software Development :: Libraries :: Python Modules |
Evidence: asynch-0.4.0-cp311-cp311-macosx_10_9_x86_64.whl; asynch-0.4.0-cp311-cp311-macosx_11_0_arm64.whl; asynch-0.4.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; asynch-0.4.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; asynch-0.4.0-cp311-cp311-musllinux_1_2_aarch64.whl; asynch-0.4.0-cp311-cp311-musllinux_1_2_x86_64.whl; asynch-0.4.0-cp311-cp311-win32.whl; asynch-0.4.0-cp311-cp311-win_amd64.whl; asynch-0.4.0-cp312-cp312-macosx_10_13_x86_64.whl; asynch-0.4.0-cp312-cp312-macosx_11_0_arm64.whl; asynch-0.4.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; asynch-0.4.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; asynch-0.4.0-cp312-cp312-musllinux_1_2_aarch64.whl; asynch-0.4.0-cp312-cp312-musllinux_1_2_x86_64.whl; asynch-0.4.0-cp312-cp312-win32.whl; asynch-0.4.0-cp312-cp312-win_amd64.whl; asynch-0.4.0-cp313-cp313-macosx_10_13_x86_64.whl; asynch-0.4.0-cp313-cp313-macosx_11_0_arm64.whl; asynch-0.4.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; asynch-0.4.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “async clickhouse driver”
- asynchasynch is an asynchronous ClickHouse driver with native TCP support,…
- clickhouse-connectA Python database driver for ClickHouse that supports DataFrames,…
- clickhouse-sqlalchemySQLAlchemy dialect for ClickHouse that enables ORM-style database…
Give your agent the search over MCP, or paste the wish link into any chat.
More Python Modules packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
PyYAML parses and emits YAML 1.1 data format, enabling serialization and deserialization of configuration files and Python objects to and from human-readable YAML text.
Pydantic validates Python data structures against type hints, coercing and checking input at runtime to ensure it matches a declared schema.
Provides reusable metadata objects for use with PEP-593 `typing.Annotated` to express common constraints like bounds, collection sizes, and predicates on types.
Install it if you use or build libraries that need to express type constraints in a standardized, inspectable way—or if you want to annotate your own types with…
Provides runtime tools to inspect and introspect Python type annotations, enabling programmatic examination of type hints at execution time.
See also clickhouse-driver · clickhouse-pool · aiochclient · ydb-dbapi · asyncmy · asyncmy2 · clickhouse-sqlalchemy · aioodbc · databend-driver · aioftp