aiometer
A Python concurrency scheduling library, compatible with asyncio and trio
What it is and what it does
aiometer is a concurrency scheduler for async Python that lets you run many tasks at once while controlling how many run simultaneously and how fast they spawn. It works with both asyncio and trio, making it easy to apply backpressure—slowing down task execution to avoid overwhelming servers, databases, or other resources.
The library provides four main entry points: run_on_each() for fire-and-forget execution, run_all() to collect results in order, amap() to process results as they complete, and run_any() to return the first successful result. You control concurrency with max_at_once (concurrent task limit) and max_per_second (spawn rate). It's fully type-annotated, has 100% test coverage, and supports Python 3.8 through 3.13.
Use it for:
- Make hundreds of HTTP requests concurrently without overwhelming the server by setting max_per_second and max_at_once limits.
- Run database queries in parallel while respecting connection pool limits via max_at_once.
- Process items from a queue with controlled concurrency to avoid resource exhaustion.
- Implement rate-limited API clients that respect per-second quotas.
- Coordinate async tasks across asyncio and trio codebases with a single scheduling interface.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
aiometer is a concurrency scheduling library that limits how many async tasks run simultaneously and controls their rate, working with both asyncio and trio.
Yes, if you need to manage concurrency in async code. The library is stable, has no known vulnerabilities, minimal dependencies, and solves a real problem—controlling task parallelism and rate. The aging maintenance (last release 497 days ago) is a minor concern but not a blocker given the stable status and active repository. Install it for production async workloads that need backpressure.
Install
aiometer on PyPI
pip
pip install aiometeruv
uv add aiometerpoetry
poetry add aiometerInstalling aiometer
Before you install
Low friction: pure Python wheel with only two lightweight runtime dependencies (anyio and exceptiongroup). Maintenance is aging—last release was 497 days ago—but the repository remains active with recent commits and the package is marked Production/Stable.
License in practice
MIT license is permissive; you can use, modify, and distribute aiometer freely in commercial and private projects with minimal restrictions.
Quickstart
import aiometer
import asyncio
async def task(item):
await asyncio.sleep(0.1)
return item
results = await aiometer.run_all(
[task(i) for i in range(100)],
max_at_once=10,
max_per_second=5
)
Requires Python 3.8 or later; asyncio or trio must be available in your environment.
Verify before relying
- Whether the aging maintenance status (497 days since last release) affects stability or security for new Python versions.
- Performance characteristics under very high concurrency (e.g., thousands of concurrent tasks).
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — anyio, exceptiongroup |
| Maintenance | aging — 497 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 386,066/month — #7,054 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: aiometer-1.0.0-py3-none-any.whl
Tags
More Distributed Computing packages
gRPC Python is an HTTP/2-based RPC framework…
permissive · top 100 on PyPI
execnetexecnet lets you spawn and communicate with…
permissive · top 1,000 on PyPI
cloudpickleCloudpickle extends Python's standard pickle…
permissive · top 1,000 on PyPI
smart-openProvides a unified, open()-compatible Python…
permissive · top 1,000 on PyPI
portalockerPortalocker provides cross-platform file…
permissive · top 1,000 on PyPI
rayRay is a distributed computing framework that…
permissive · top 1,000 on PyPI
aiotoolsaiotools provides idiomatic asyncio utilities…
permissive · top 15,000 on PyPI
trioTrio is an async I/O library that lets you…
permissive · top 1,000 on PyPI
asynciolimiterProvides rate limiting for async Python code by…
permissive · top 5,000 on PyPI
httpx-limiterProvides rate-limited HTTP transports for httpx…
permissive · top 15,000 on PyPI
aiojobsaiojobs provides a scheduler for spawning and…
permissive · top 15,000 on PyPI
pytest-asyncio-concurrentA pytest plugin that executes async test…
permissive · top 15,000 on PyPI
pytest-trioA pytest plugin that enables testing of async…
permissive · top 15,000 on PyPI
aiologicaiologic provides thread-aware and async-aware…
permissive · top 5,000 on PyPI
asyncio-throttleProvides a simple async context manager to…
permissive · top 15,000 on PyPI
pytest-aioA pytest plugin that automatically runs async…
permissive · top 15,000 on PyPI