--- id: asynciolimiter version: "1.2.0" license: unclear license_treatment: permissive maintenance: aging --- # asynciolimiter — Rate limiter for Async IO License: permissive · Maintenance: aging · Downloads: 1.2M/mo ## What it is and what it does asynciolimiter is a rate-limiting library for Python AsyncIO that enforces a maximum request rate by making coroutines wait until a slot becomes available. It offers three implementations: a basic Limiter that accounts for CPU delays, a LeakyBucketLimiter following the leaky bucket algorithm with burst capacity, and a StrictLimiter that enforces a hard rate floor without bursts. The package has no external runtime dependencies and supports Python 3.9 and later. You use it by instantiating a limiter with a rate (requests per second), then calling `await limiter.wait()` before executing rate-limited work. It integrates directly into async functions and plays well with `asyncio.gather()` and other concurrency patterns. The library is stable and typed, making it suitable for production async applications that need to throttle API calls, database queries, or other I/O-bound operations. Use it for: - Throttle API client requests to respect rate limits imposed by external services. - Control database query concurrency to avoid overwhelming a backend or exhausting connection pools. - Manage burst traffic in web scrapers or batch jobs to stay within resource budgets. - Enforce fair scheduling of background tasks so no single coroutine starves others. - Implement backpressure in event-driven systems to prevent downstream overload. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Provides rate limiting for async Python code by enforcing a maximum request rate and managing concurrent task scheduling within AsyncIO. Yes, with a note on maintenance. The package is stable, has no dependencies, and solves a common async concurrency problem cleanly. However, it has not been released in over five months despite an active repository, so check whether your use case aligns with the three limiter flavors offered before committing to it. No known vulnerabilities. ## Install pip install asynciolimiter uv add asynciolimiter poetry add asynciolimiter ## Installing asynciolimiter Before you install: Low friction: pure Python wheel with no runtime dependencies. Maintenance status is aging—last commit was 2025-08-01 and the package has not been released in over five months, though the repository remains active and not archived. License in practice: Licensed under MIT (permissive), so you can use, modify, and distribute this package with minimal legal constraints. Quickstart: pip install asynciolimiter import asyncio import asynciolimiter async def main(): limiter = asynciolimiter.Limiter(10/5) # 10 requests per 5 seconds await limiter.wait() # do work here asyncio.run(main()) Requires Python 3.9 or later. Verify before relying: - Whether the three limiter flavors (Limiter, LeakyBucketLimiter, StrictLimiter) differ meaningfully in performance or accuracy under real workloads. - Behavior and thread-safety guarantees when multiple asyncio event loops or tasks interact with the same limiter instance. ## Package facts - License: not declared (permissive) - Python support: supports_current - Install friction: low - Maintenance: aging - Downloads: 1.2M/month (top 5,000 on PyPI) - Known vulnerabilities: none known ## Tags asyncio rate limiter, async request throttling, rate limiting for coroutines, asyncio concurrency control, async task rate limiting, leaky bucket rate limiter, asyncio request throttle, asyncio, rate-limiting, concurrency-control [View on SkillFed](https://skillfed.io/packages/asynciolimiter) · [View on PyPI](https://pypi.org/project/asynciolimiter/)