--- id: asyncer version: "0.0.18" license: MIT license_treatment: permissive maintenance: active --- # asyncer — Asyncer, async and await, focused on developer experience. License: permissive · Maintenance: active · Downloads: 8.3M/mo ## 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 above — 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 pip install asyncer uv add asyncer poetry add asyncer ## Installing 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_current - Install friction: low - Maintenance: active - Downloads: 8.3M/month (top 5,000 on PyPI) - Known vulnerabilities: none known ## Tags async await utilities, call sync code from async, asyncify blocking functions, async developer experience, type-safe async helpers, mixed async sync code, anyio wrapper utilities, async-utilities, type-safety [View on SkillFed](https://skillfed.io/packages/asyncer) · [View on PyPI](https://pypi.org/project/asyncer/)