Skip to main content

High-performance async rate limiter for FastAPI with Redis or native in-memory backend

Project description

fastapi-easylimit

Simple async rate-limiting middleware for FastAPI with Redis or in-memory caching.

Simple design

  • Async rate limiting
  • Redis or in-memory cache

Installation

pip install fastapi-easylimit

Usage

from fastapi import FastAPI
from fastapi_easylimiter import AsyncRedisBackend, InMemoryBackend
import redis.asyncio as redis_async

app = FastAPI()

REDIS_URL = "redis://localhost:6379/0"

# Redis client
redis_client = redis_async.from_url(REDIS_URL, decode_responses=True)
backend = AsyncRedisBackend(redis_client)

# Or for local development:
# backend = InMemoryBackend()

rules = {
    "/api/users": {"limit": 1, "period": 2},
    "/api/": {"limit": 60, "period": 60}, # GLOBAL ONES GO LAST
}

app.add_middleware(
    RateLimiterMiddleware,
    rules=rules,
    backend=backend,
    backoff_threshold=3,
    max_backoff=60
)

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

fastapi_easylimiter-0.1.1.tar.gz (4.3 kB view details)

Uploaded Source

Built Distribution

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

fastapi_easylimiter-0.1.1-py3-none-any.whl (5.1 kB view details)

Uploaded Python 3

File details

Details for the file fastapi_easylimiter-0.1.1.tar.gz.

File metadata

  • Download URL: fastapi_easylimiter-0.1.1.tar.gz
  • Upload date:
  • Size: 4.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.1

File hashes

Hashes for fastapi_easylimiter-0.1.1.tar.gz
Algorithm Hash digest
SHA256 dc39b2e25a65c6d2e691d88fdb6db38ad5e587eb27231a92fd268787a6e9722f
MD5 8ca471910fa0fde7760b802d2bfda117
BLAKE2b-256 ea31ce430c8d6755bc3bdded5ac6763abeaab631a3283c66884f4c0f1986ab7d

See more details on using hashes here.

File details

Details for the file fastapi_easylimiter-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for fastapi_easylimiter-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3de594a090103c82c8bb53cd2ffc1e37196eb13291ac1b0f951b91ce644351d0
MD5 76b1c7c4b7b55bb973c9de5670b01217
BLAKE2b-256 f7b79fb83089dcbd482233c5c328b053f8d83a2230c7e97f2cc6f7c66dbeb4bb

See more details on using hashes here.

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