Async Support

Added in version 2.1.

A new namespace limits.aio is available which mirrors the original limits.storage and limits.strategies packages.

The following async storage backends are implemented:

Quick start

This example demonstrates the subtle differences in the limits.aio namespace:

from limits import parse
from limits.storage import storage_from_string
from limits.aio.strategies import MovingWindowRateLimiter

redis = storage_from_string("async+redis://localhost:6379")

moving_window = MovingWindowRateLimiter(redis)
one_per_minute = parse("1/minute")

async def hit():
   return await moving_window.hit(one_per_minute, "test_namespace", "foo")

Refer to Async Storage for more implementation details of the async storage backends, and Async Strategies for the async rate limit strategies API.