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.2.tar.gz (4.6 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.2-py3-none-any.whl (5.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: fastapi_easylimiter-0.1.2.tar.gz
  • Upload date:
  • Size: 4.6 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.2.tar.gz
Algorithm Hash digest
SHA256 ac245d0cb80103528de78dd4068fdb857d5a9455f1e7477d172605a9c2539944
MD5 0e06d1555d2e7b64e9036504173a140c
BLAKE2b-256 958c330829256603fa9b3c2c2184229fdb84f72155844fcba94cba7a93d44605

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fastapi_easylimiter-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6b081a0f99ed6f7fa159f45713702ab457ee7bfa49ea510915f96e23ba863066
MD5 f226e93751142744dc1ccbd7a182d0d8
BLAKE2b-256 ad37ecbaa79807c817f186c835f7e44ffb5532ea847e583a3101414e7d4619e7

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