Skip to main content

Asynchronous AIMD-based rate limiter

Project description

aimd-limiter

English · 简体中文

CI

Asynchronous Python rate limiter built around the Additive Increase Multiplicative Decrease (AIMD) control loop with slow start, congestion avoidance, and fast recovery behaviors.

Features

  • Fully asynchronous API compatible with Python 3.10+.
  • Deterministic AIMD core with slow start, congestion avoidance, and fast recovery.
  • Designed for integration inside asyncio-based services and SDKs.
  • 100% test coverage.

Usage Example

import asyncio

from aimd_limiter import AIMDAsyncLimiter


async def main() -> None:
    limiter = AIMDAsyncLimiter(max_rate=20.0)
    async with limiter.acquire():
        # Perform work guarded by AIMD flow control.
        ...


asyncio.run(main())

Documentation

Development

uv sync --all-groups
uv run pre-commit install
uv run pytest
uv run pre-commit run --all-files --show-diff-on-failure

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aimd_limiter-0.1.0.tar.gz (15.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aimd_limiter-0.1.0-py3-none-any.whl (5.7 kB view details)

Uploaded Python 3

File details

Details for the file aimd_limiter-0.1.0.tar.gz.

File metadata

  • Download URL: aimd_limiter-0.1.0.tar.gz
  • Upload date:
  • Size: 15.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for aimd_limiter-0.1.0.tar.gz
Algorithm Hash digest
SHA256 53b5157c2592f3fe38c95d29975faa94174b2de5edfd81bac2cab5eb63d8cd5d
MD5 ae6264aad2a2056e83300af5fe78ea39
BLAKE2b-256 5bb039e3de69cc316281e678c4e90c22283bc3fb0f1c6704a3317ef7919508fe

See more details on using hashes here.

Provenance

The following attestation bundles were made for aimd_limiter-0.1.0.tar.gz:

Publisher: ci-cd.yml on mxcoras/aimd-limiter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file aimd_limiter-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: aimd_limiter-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 5.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for aimd_limiter-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5a42d2ea8ee33713e5af6877eb85483bfb060fa36d331cc197ec1a06ec25a186
MD5 9cdd6b650b9b01ed73b801b8816b691a
BLAKE2b-256 5955f6ee80ad3657fa9de24218104aae3c8869ce4ffcffa865e9de6d59ec0a85

See more details on using hashes here.

Provenance

The following attestation bundles were made for aimd_limiter-0.1.0-py3-none-any.whl:

Publisher: ci-cd.yml on mxcoras/aimd-limiter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page