Initial commit: fastapi-traffic rate limiting library
- Core rate limiting with multiple algorithms (sliding window, token bucket, etc.) - SQLite and memory backends - Decorator and dependency injection patterns - Middleware support - Example usage files
This commit is contained in:
36
fastapi_traffic/__init__.py
Normal file
36
fastapi_traffic/__init__.py
Normal file
@@ -0,0 +1,36 @@
|
||||
"""FastAPI Traffic - Production-grade rate limiting for FastAPI."""
|
||||
|
||||
from fastapi_traffic.core.decorator import rate_limit
|
||||
from fastapi_traffic.core.limiter import RateLimiter
|
||||
from fastapi_traffic.core.config import RateLimitConfig
|
||||
from fastapi_traffic.core.algorithms import Algorithm
|
||||
from fastapi_traffic.backends.base import Backend
|
||||
from fastapi_traffic.backends.memory import MemoryBackend
|
||||
from fastapi_traffic.backends.sqlite import SQLiteBackend
|
||||
from fastapi_traffic.exceptions import (
|
||||
RateLimitExceeded,
|
||||
BackendError,
|
||||
ConfigurationError,
|
||||
)
|
||||
|
||||
__version__ = "0.1.0"
|
||||
__all__ = [
|
||||
"rate_limit",
|
||||
"RateLimiter",
|
||||
"RateLimitConfig",
|
||||
"Algorithm",
|
||||
"Backend",
|
||||
"MemoryBackend",
|
||||
"SQLiteBackend",
|
||||
"RateLimitExceeded",
|
||||
"BackendError",
|
||||
"ConfigurationError",
|
||||
]
|
||||
|
||||
# Optional Redis backend
|
||||
try:
|
||||
from fastapi_traffic.backends.redis import RedisBackend
|
||||
|
||||
__all__.append("RedisBackend")
|
||||
except ImportError:
|
||||
pass
|
||||
Reference in New Issue
Block a user