asyncer
Asyncer, async and await, focused on developer experience.
What it is and what it does
Asyncer is a lightweight utility library that sits on top of AnyIO to make async/await code more convenient and type-safe. It provides a small set of functions—the package explicitly states there are just 4—designed to improve developer experience through better editor autocompletion, inline type checking, and mypy support. The main use case is calling synchronous blocking code from within async contexts without blocking the event loop; asyncify() wraps a sync function and runs it in a worker thread via AnyIO.
The library is intentionally minimal and opinionated, reflecting the author's subjective view on ergonomic async patterns. Because it is small and still in Beta status, the authors recommend pinning the exact version and having tests in place before upgrading. The package is actively maintained and has no known vulnerabilities.
Use it for:
- Call blocking I/O or CPU-bound sync functions from async code without freezing the event loop.
- Improve type hints and editor autocompletion when working with async/await patterns.
- Verify async code correctness using mypy and other static type checkers.
- Simplify mixing of synchronous and asynchronous code in the same project.
- Reduce boilerplate when adapting legacy sync libraries for use in async applications.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Asyncer provides utility functions for working with async/await code and mixing synchronous blocking code with asynchronous code, built on top of AnyIO with a focus on type safety and editor support.
Yes, if you regularly mix async and sync code and want better type safety and editor support. The low install friction, active maintenance, MIT license, and zero known vulnerabilities make it a safe choice. Pin the exact version as recommended in the documentation, and ensure you have tests. Not necessary if your project is purely async or purely sync.
Install
asyncer on PyPI
pip
pip install asynceruv
uv add asyncerpoetry
poetry add asyncerInstalling asyncer
Before you install
Low friction install with only three runtime dependencies (anyio, sniffio, typing_extensions). Actively maintained with a recent release; however, the package is explicitly marked as small and potentially subject to change, so pinning the exact version is recommended.
License in practice
MIT license permits commercial and private use with minimal restrictions; suitable for most projects without licensing concerns.
Quickstart
pip install asyncer
import time
import anyio
from asyncer import asyncify
def do_sync_work(name: str):
time.sleep(1)
return f"Hello, {name}"
async def main():
message = await asyncify(do_sync_work)(name="World")
print(message)
anyio.run(main)
Requires Python 3.10 or later.
Verify before relying
- Whether the library's 4 functions remain stable across versions or if breaking changes are expected.
- Performance characteristics when using asyncify() with long-running blocking operations.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 3 — anyio, sniffio, typing_extensions |
| Maintenance | actively maintained — 50 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 8,262,619/month — #1,640 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: asyncer-0.0.18-py3-none-any.whl
Tags
More Internet packages
Botocore provides low-level, data-driven access…
permissive · top 100 on PyPI
aiobotocoreProvides an async client for AWS services using…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
filelockProvides a platform-independent file locking…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
googleapis-common-protosProvides common Protocol Buffer message…
permissive · top 100 on PyPI
async-extensionsProvides utilities and abstractions built on…
permissive · top 15,000 on PyPI
flake8-asyncA flake8 plugin that detects async-related…
permissive · top 15,000 on PyPI
anysqliteAnysqlite wraps SQLite with an async/await…
unclear · top 5,000 on PyPI
anyioAnyIO provides a unified asynchronous API that…
permissive · top 100 on PyPI
sqlite-anyioProvides an asynchronous client for SQLite that…
permissive · top 15,000 on PyPI
janusProvides a thread-safe queue with both…
permissive · top 5,000 on PyPI
greenbackAllows you to call async functions from…
permissive · top 5,000 on PyPI
aiologicaiologic provides thread-aware and async-aware…
permissive · top 5,000 on PyPI
asyncio-mqttProvides an async/await interface to MQTT…
permissive · top 15,000 on PyPI
aioshutilProvides async-friendly versions of shutil…
permissive · top 15,000 on PyPI