Back to Explore

laurentS/slowapi

GitHub
2 watchersOpen source

Last release:

SlowApi is a rate limiting library for Starlette and FastAPI, adapted from flask-limiter. It provides limit decorators for endpoint functions and supports sync/async HTTP endpoints with redis, memcached, or in-memory backends to track request limits.

Project status

  • Actively maintained: The repo shows an upstream push on 2026-09-08, and a recent tagged update v0.1.10 (2026-06-13) indicates ongoing work rather than a long-term freeze.
  • Update cadence: Tagged updates are infrequent, with the last two versions spanning Feb 2024 (v0.1.9) to Jun 2026 (v0.1.10), but the activity resumed again in 2026 (and a newer push occurred in Sep 2026).

AI summary generated

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • v0.1.10

    v0.1.10 adds an enhancement to how Requests can interact with the exempt_when mechanism. It also updates CI by dropping Python 3.7 and 3.8 from checks, and makes a small change to address a Python 3.11 deprecation warning.

    Features
  • v0.1.9

    v0.1.9 is a small maintenance release for SlowAPI focused on cleanup and safer configuration loading. It tightens the `limit()`/`shared_limit()` type hints and changes `.env` handling so Starlette `Config` is only pointed at `.env` when that file actually exists.

  • v0.1.8

    v0.1.8 is mostly a maintenance release that loosens the `limits` version constraint, fixes Redis packaging/install issues, and adds Python 3.11 support. The runtime code also hardens request IP resolution for missing clients and changes how app config defaults are cast internally.

    Features
  • v0.1.7

    v0.1.7 adds three user-facing rate-limiting features: per-request cost, an ASGI-native middleware option, and configurable storage-key selection via `key_style`. The code also refactors limiter internals to support async-aware storage/handlers and refreshes the project's CI and lockfile dependencies.

    Features
  • v0.1.7-alpha1

    This release is primarily a release-process and CI workflow update, not a library API change. The docs now describe a tag-based GitHub Actions release flow, and the workflow was updated to build artifacts and publish them from CI when a tag is pushed.

    Features
  • v0.1.6

    v0.1.6 is a feature-and-maintenance release for SlowAPI. It adds request-aware dynamic limits, fixes async exemption handling, and refreshes packaging/CI; the packaging metadata also tightens runtime compatibility and moves Redis behind an optional extra.

    Features
  • v0.1.5

    v0.1.5 is mainly a maintenance release: it refreshes documentation, switches the package build backend to poetry-core, and updates several pinned dependencies. The runtime code changes are focused on two fixes: disabled limiters now bypass middleware route matching, and Retry-After header handling was hardened.

  • v0.1.4

    v0.1.4 focuses on making the limiter's disable switch actually work and on fixing middleware route-matching bugs. It also cleans up the documentation examples and bumps a docs-only dependency used for site generation.

    Features
  • v0.1.3

    v0.1.3 is a small maintenance release focused on documentation refresh and a FastAPI header-injection fix. It adds setup examples, updates the docs to show default/global limit usage, and fixes CI after GitHub Actions changes. The key runtime change is in `slowapi/extension.py`, where rate-limit headers are now injected through the endpoint’s `response` object when the handler returns a non-`Response` value.

    Features
  • v0.1.2

    Release v0.1.2 was published on 2020-10-01. However, no release notes or change details were provided in the input, so the specific impact on API compatibility, functionality, or upgrades cannot be determined from the available information.