skillfed

aiometer

A Python concurrency scheduling library, compatible with asyncio and trio

aiometer v1.0.0 386.1K downloads/30d#7,054 on PyPI437
Permissive license MIT AGING released

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 aiometer

uv

uv add aiometer

poetry

poetry add aiometer

Installing 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

Development Status :: 5 - Production/StableFramework :: AsyncIOFramework :: TrioIntended Audience :: DevelopersProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9

Tags

async concurrency limiterasyncio rate limitingconcurrent task schedulerbackpressure for async taskstrio asyncio throttlingmax concurrent tasks controlasync flow control
async-concurrencyrate-limitingbackpressure

More Distributed Computing packages