Metadata-Version: 2.4
Name: deml-rate-limit
Version: 0.1.0
Summary: Dragonfly/Redis sliding window rate limiting for DEML Platform
Project-URL: Homepage, https://dataengineeringformachinelearning.com
Project-URL: Documentation, https://dataengineeringformachinelearning.com/documentation
Project-URL: Repository, https://github.com/dataengineeringformachinelearning/dataengineeringformachinelearning
Project-URL: Issues, https://github.com/dataengineeringformachinelearning/dataengineeringformachinelearning/issues
Author-email: Joe Alongi <joe@dataengineeringformachinelearning.com>
License-Expression: MIT
License-File: LICENSE
Keywords: dragonfly,rate-limit,redis,security,sliding-window
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.10
Requires-Dist: redis>=5.0.0
Provides-Extra: dev
Requires-Dist: pytest>=7.0.0; extra == 'dev'
Requires-Dist: ruff>=0.4.0; extra == 'dev'
Description-Content-Type: text/markdown

# DEML Rate Limit

Dragonfly/Redis sliding window rate limiting with security-focused COGS optimization.

## Installation

```bash
pip install deml-rate-limit
```

## Usage

```python
import redis
from deml_rate_limit import check_rate_limit, RateLimitError

client = redis.Redis.from_url("redis://localhost:6379")

# Check rate limit
allowed, count, window = check_rate_limit("user:123", client, quota=100)
if not allowed:
    raise RateLimitError("Rate limit exceeded")
```

## Features

- Sliding window algorithm
- Automatic cleanup of expired entries
- UUIDsafe keys for multi-tenant systems
