Repository navigation
v0.0.3
π Fastrict - Enterprise FastAPI Rate Limiter
The most powerful, flexible, and production-ready rate limiting system for FastAPI applications.
Fastrict provides enterprise-grade rate limiting with Redis and in-memory backends, supporting everything from simple API throttling to complex multi-tenant rate limiting strategies.
π¦ Installation
# Install from PyPI
pip install fastrict
# Install with development dependencies
pip install fastrict[dev]
# Install with documentation dependencies
pip install fastrict[docs]π§ System Requirements
| Component | Version | Purpose |
|---|---|---|
| Python | 3.8+ | Core runtime |
| FastAPI | 0.68+ | Web framework |
| Redis | 4.0+ | Primary storage backend |
| Pydantic | 1.8+ | Data validation |
| Starlette | 0.14+ | ASGI framework |
π Quick Start
π― 1. Basic Setup (30 seconds)
from fastapi import FastAPI
from fastrict import RateLimitMiddleware, RedisRateLimitRepository
from fastrict import RateLimitUseCase, KeyExtractionUseCase
# Create FastAPI app
app = FastAPI(title="My Rate Limited API")
# Setup rate limiting (Redis)
repository = RedisRateLimitRepository.from_url("redis://localhost:6379")
key_extraction = KeyExtractionUseCase()
rate_limiter = RateLimitUseCase(repository, key_extraction)
# Add global rate limiting middleware
app.add_middleware(
RateLimitMiddleware,
rate_limit_use_case=rate_limiter,
excluded_paths=["/health", "/docs", "/metrics"]
)
@app.get("/api/data")
async def get_data():
return {"message": "This endpoint is globally rate limited"}π Resources & Documentation
π Documentation
- API Reference - Complete API documentation
- User Guide - Step-by-step tutorials
- Examples - Real-world examples
- Architecture - Design decisions
π Support Channels
- π Issue Tracker - Bug reports & feature requests
- π¬ Discussions - Community Q&A
- π§ Email - Direct support for enterprise users
- πΌ LinkedIn - Professional inquiries