Metadata-Version: 2.4
Name: ratethrottle
Version: 1.0.0
Summary: Advanced rate limiting and DDoS protection for Python web applications
Project-URL: Documentation, https://github.com/MykeChidi/ratethrottle
Project-URL: Repository, https://github.com/MykeChidi/ratethrottle
Project-URL: Bug Tracker, https://github.com/MykeChidi/ratethrottle/issues
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: redis
Requires-Dist: redis>=7.0.0; extra == "redis"
Provides-Extra: flask
Requires-Dist: flask>=3.0.0; extra == "flask"
Provides-Extra: fastapi
Requires-Dist: fastapi>=0.129.0; extra == "fastapi"
Requires-Dist: starlette>=0.52.0; extra == "fastapi"
Provides-Extra: django
Requires-Dist: django>=5.2.0; extra == "django"
Provides-Extra: frameworks
Requires-Dist: redis>=7.0.0; extra == "frameworks"
Requires-Dist: flask>=3.0.0; extra == "frameworks"
Requires-Dist: fastapi>=0.100.0; extra == "frameworks"
Requires-Dist: starlette>=0.52.0; extra == "frameworks"
Requires-Dist: django>=5.2.0; extra == "frameworks"
Provides-Extra: dev
Requires-Dist: pytest>=9.0.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
Requires-Dist: pytest-asyncio>=1.2.0; extra == "dev"
Requires-Dist: pytest-mock>=3.10.0; extra == "dev"
Requires-Dist: black>=26.0.0; extra == "dev"
Requires-Dist: flake8>=7.0.0; extra == "dev"
Requires-Dist: mypy>=1.0.0; extra == "dev"
Requires-Dist: isort>=7.0.0; extra == "dev"
Requires-Dist: bandit>=1.9.0; extra == "dev"
Requires-Dist: pre-commit>=4.0.0; extra == "dev"
Requires-Dist: types-PyYAML>=6.0.0; extra == "dev"
Requires-Dist: types-redis>=4.5.0; extra == "dev"
Dynamic: license-file

# `RateThrottle`

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

**Advanced rate limiting and DDoS protection for Python web applications.**

RateThrottle is a comprehensive rate limiting library that provides enterprise-level features for protecting your APIs and web applications from abuse, with built-in DDoS protection, different storage backends, multiple strategies and seamless integration with popular Python web frameworks.

## ✨ Features

- 🚀 **Multiple Rate Limiting Strategies**
  - Token Bucket
  - Leaky Bucket
  - Fixed Window
  - Sliding Window Log
  
- 🛡️ **Advanced DDoS Protection**
  - Traffic pattern analysis
  - Automatic suspicious activity detection
  - Auto-blocking capabilities
  
- 💾 **Flexible Storage Backends**
  - In-memory (single instance)
  - Redis (distributed/multi-server)
  - Easy to extend with custom backends
  
- 🔧 **Framework Integration**
  - Flask
  - FastAPI
  - Django
  - Starlette
  - Generic WSGI/ASGI support
  
- 📊 **Monitoring & Analytics**
  - Real-time metrics
  - Violation tracking
  - CLI dashboard
  
- ⚙️ **Configuration Management**
  - YAML configuration files
  - Programmatic configuration
  - Hot-reloading support


## 📊 Performance

RateThrottle is designed for high performance:

- **In-memory storage**: 100,000+ requests/second
- **Redis storage**: 50,000+ requests/second (network dependent)
- **Minimal overhead**: < 1ms per request check
- **Thread-safe**: Safe for concurrent use
- **Memory efficient**: Automatic cleanup of expired data


## 📝 License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.


## 📮 Support

- 🐛 Issues: [GitHub Issues](https://github.com/MykeChidi/ratethrottle/issues)
- 📖 Documentation: [Full Documentation](README)

---
