Metadata-Version: 2.4
Name: limitra
Version: 0.0.1
Summary: Simple, framework-agnostic rate limiting for Python — sliding window, token bucket, leaky bucket, fixed window, memory and Redis backends
Author-email: Léo Kling <contact@leok.dev>
License-Expression: MIT
Project-URL: Homepage, https://github.com/leo-kling/limitra
Project-URL: Repository, https://github.com/leo-kling/limitra
Project-URL: Issues, https://github.com/leo-kling/limitra/issues
Keywords: rate-limit,rate-limiter,rate-limiting,ratelimit,throttle,throttling,sliding-window,token-bucket,leaky-bucket,fixed-window,fastapi,django,flask,redis,api
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Software Development :: Libraries
Classifier: Typing :: Typed
Classifier: Framework :: AsyncIO
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

<p align="center">
  <img src="https://limitra.pages.dev/logo.png" alt="Limitra" width="120" />
</p>

<h1 align="center">Limitra</h1>

<p align="center">
  <img src="https://github.com/leo-kling/limitra/actions/workflows/ci.yml/badge.svg" alt="CI" />
  <img src="https://img.shields.io/badge/python-3.10%20|%203.11%20|%203.12%20|%203.13%20|%203.14-blue" alt="Python versions" />
  <img src="https://img.shields.io/badge/license-MIT-lightgrey" alt="MIT license" />
</p>

<p align="center">Simple, framework-agnostic rate limiting for Python.</p>

---

## Install

```bash
pip install limitra
```

## Quick start

```python
from limitra import LimitraConfig, rate_limit

LimitraConfig(redis_url="redis://localhost:6379", project="my-service")

@rate_limit(requests=10, window=60, key="user_id")
def create_post(user_id: str, content: str):
    ...
```

→ Full documentation: **[limitra.leok.dev](https://limitra.leok.dev)**
