├── .flake8 ├── .gitattributes ├── .github └── workflows │ ├── ci.yml │ └── pypi.yml ├── .gitignore ├── LICENSE ├── README.md ├── poetry.lock ├── pyproject.toml ├── ratelimit ├── __init__.py ├── __version__.py ├── auths │ ├── __init__.py │ ├── ip.py │ ├── jwt.py │ └── session.py ├── backends │ ├── __init__.py │ ├── base.py │ ├── redis.py │ ├── simple.py │ └── slidingredis.py ├── core.py ├── py.typed ├── rule.py └── types.py ├── script └── upload.py └── tests ├── __init__.py ├── auths ├── __init__.py ├── test_ip.py ├── test_jwt.py └── test_session.py ├── backends ├── __init__.py ├── backend_utils.py ├── test_redis.py └── test_simple.py ├── test_core.py └── test_ratelimit.py /.flake8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abersheeran/asgi-ratelimit/HEAD/.flake8 -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abersheeran/asgi-ratelimit/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.github/workflows/pypi.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abersheeran/asgi-ratelimit/HEAD/.github/workflows/pypi.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abersheeran/asgi-ratelimit/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abersheeran/asgi-ratelimit/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abersheeran/asgi-ratelimit/HEAD/README.md -------------------------------------------------------------------------------- /poetry.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abersheeran/asgi-ratelimit/HEAD/poetry.lock -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abersheeran/asgi-ratelimit/HEAD/pyproject.toml -------------------------------------------------------------------------------- /ratelimit/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abersheeran/asgi-ratelimit/HEAD/ratelimit/__init__.py -------------------------------------------------------------------------------- /ratelimit/__version__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abersheeran/asgi-ratelimit/HEAD/ratelimit/__version__.py -------------------------------------------------------------------------------- /ratelimit/auths/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abersheeran/asgi-ratelimit/HEAD/ratelimit/auths/__init__.py -------------------------------------------------------------------------------- /ratelimit/auths/ip.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abersheeran/asgi-ratelimit/HEAD/ratelimit/auths/ip.py -------------------------------------------------------------------------------- /ratelimit/auths/jwt.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abersheeran/asgi-ratelimit/HEAD/ratelimit/auths/jwt.py -------------------------------------------------------------------------------- /ratelimit/auths/session.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abersheeran/asgi-ratelimit/HEAD/ratelimit/auths/session.py -------------------------------------------------------------------------------- /ratelimit/backends/__init__.py: -------------------------------------------------------------------------------- 1 | from .base import BaseBackend # noqa: F401 2 | -------------------------------------------------------------------------------- /ratelimit/backends/base.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abersheeran/asgi-ratelimit/HEAD/ratelimit/backends/base.py -------------------------------------------------------------------------------- /ratelimit/backends/redis.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abersheeran/asgi-ratelimit/HEAD/ratelimit/backends/redis.py -------------------------------------------------------------------------------- /ratelimit/backends/simple.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abersheeran/asgi-ratelimit/HEAD/ratelimit/backends/simple.py -------------------------------------------------------------------------------- /ratelimit/backends/slidingredis.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abersheeran/asgi-ratelimit/HEAD/ratelimit/backends/slidingredis.py -------------------------------------------------------------------------------- /ratelimit/core.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abersheeran/asgi-ratelimit/HEAD/ratelimit/core.py -------------------------------------------------------------------------------- /ratelimit/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ratelimit/rule.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abersheeran/asgi-ratelimit/HEAD/ratelimit/rule.py -------------------------------------------------------------------------------- /ratelimit/types.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abersheeran/asgi-ratelimit/HEAD/ratelimit/types.py -------------------------------------------------------------------------------- /script/upload.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abersheeran/asgi-ratelimit/HEAD/script/upload.py -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/auths/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/auths/test_ip.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abersheeran/asgi-ratelimit/HEAD/tests/auths/test_ip.py -------------------------------------------------------------------------------- /tests/auths/test_jwt.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abersheeran/asgi-ratelimit/HEAD/tests/auths/test_jwt.py -------------------------------------------------------------------------------- /tests/auths/test_session.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abersheeran/asgi-ratelimit/HEAD/tests/auths/test_session.py -------------------------------------------------------------------------------- /tests/backends/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/backends/backend_utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abersheeran/asgi-ratelimit/HEAD/tests/backends/backend_utils.py -------------------------------------------------------------------------------- /tests/backends/test_redis.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abersheeran/asgi-ratelimit/HEAD/tests/backends/test_redis.py -------------------------------------------------------------------------------- /tests/backends/test_simple.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abersheeran/asgi-ratelimit/HEAD/tests/backends/test_simple.py -------------------------------------------------------------------------------- /tests/test_core.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abersheeran/asgi-ratelimit/HEAD/tests/test_core.py -------------------------------------------------------------------------------- /tests/test_ratelimit.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abersheeran/asgi-ratelimit/HEAD/tests/test_ratelimit.py --------------------------------------------------------------------------------