Update 2025-04-24_11:44:19
This commit is contained in:
@ -0,0 +1 @@
|
||||
pip
|
@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2020 Laurent Savaete
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
of the Software, and to permit persons to whom the Software is furnished to do
|
||||
so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
@ -0,0 +1,95 @@
|
||||
Metadata-Version: 2.1
|
||||
Name: slowapi
|
||||
Version: 0.1.9
|
||||
Summary: A rate limiting extension for Starlette and Fastapi
|
||||
Home-page: https://github.com/laurents/slowapi
|
||||
License: MIT
|
||||
Author: Laurent Savaete
|
||||
Author-email: laurent@where.tf
|
||||
Requires-Python: >=3.7,<4.0
|
||||
Classifier: License :: OSI Approved :: MIT License
|
||||
Classifier: Programming Language :: Python :: 3
|
||||
Classifier: Programming Language :: Python :: 3.7
|
||||
Classifier: Programming Language :: Python :: 3.8
|
||||
Classifier: Programming Language :: Python :: 3.9
|
||||
Classifier: Programming Language :: Python :: 3.10
|
||||
Classifier: Programming Language :: Python :: 3.11
|
||||
Classifier: Programming Language :: Python :: 3.12
|
||||
Provides-Extra: redis
|
||||
Requires-Dist: limits (>=2.3)
|
||||
Requires-Dist: redis (>=3.4.1,<4.0.0) ; extra == "redis"
|
||||
Project-URL: Documentation, https://slowapi.readthedocs.io/en/latest/
|
||||
Project-URL: Repository, https://github.com/laurents/slowapi
|
||||
Description-Content-Type: text/markdown
|
||||
|
||||
# SlowApi
|
||||
|
||||
A rate limiting library for Starlette and FastAPI adapted from [flask-limiter](http://github.com/alisaifee/flask-limiter).
|
||||
|
||||
This package is used in various production setups, handling millions of requests per month, and seems to behave as expected.
|
||||
There might be some API changes when changing the code to be fully `async`, but we will notify users via appropriate `semver` version changes.
|
||||
|
||||
The documentation is on [read the docs](https://slowapi.readthedocs.io/en/latest/).
|
||||
|
||||
# Quick start
|
||||
|
||||
## Installation
|
||||
|
||||
`slowapi` is available from [pypi](https://pypi.org/project/slowapi/) so you can install it as usual:
|
||||
|
||||
```
|
||||
$ pip install slowapi
|
||||
```
|
||||
|
||||
# Features
|
||||
|
||||
Most feature are coming from FlaskLimiter and the underlying [limits](https://limits.readthedocs.io/).
|
||||
|
||||
Supported now:
|
||||
|
||||
- Single and multiple `limit` decorator on endpoint functions to apply limits
|
||||
- redis, memcached and memory backends to track your limits (memory as a fallback)
|
||||
- support for sync and async HTTP endpoints
|
||||
- Support for shared limits across a set of routes
|
||||
|
||||
|
||||
# Limitations and known issues
|
||||
|
||||
* The `request` argument must be explicitly passed to your endpoint, or `slowapi` won't be able to hook into it. In other words, write:
|
||||
|
||||
```python
|
||||
@limiter.limit("5/minute")
|
||||
async def myendpoint(request: Request)
|
||||
pass
|
||||
```
|
||||
|
||||
and not:
|
||||
|
||||
```python
|
||||
@limiter.limit("5/minute")
|
||||
async def myendpoint()
|
||||
pass
|
||||
```
|
||||
|
||||
* `websocket` endpoints are not supported yet.
|
||||
|
||||
# Developing and contributing
|
||||
|
||||
PRs are more than welcome! Please include tests for your changes :)
|
||||
|
||||
The package uses [poetry](https://python-poetry.org) to manage dependencies. To setup your dev env:
|
||||
|
||||
```bash
|
||||
$ poetry install
|
||||
```
|
||||
|
||||
To run the tests:
|
||||
```bash
|
||||
$ pytest
|
||||
```
|
||||
|
||||
# Credits
|
||||
|
||||
Credits go to [flask-limiter](https://github.com/alisaifee/flask-limiter) of which SlowApi is a (still partial) adaptation to Starlette and FastAPI.
|
||||
It's also important to mention that the actual rate limiting work is done by [limits](https://github.com/alisaifee/limits/), `slowapi` is just a wrapper around it.
|
||||
|
@ -0,0 +1,19 @@
|
||||
slowapi-0.1.9.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
|
||||
slowapi-0.1.9.dist-info/LICENSE,sha256=Ke76KG_zAHw5wAQKFav9HcpiEavOs49I9dE4BXRns04,1072
|
||||
slowapi-0.1.9.dist-info/METADATA,sha256=Cc3UfxGOOTSALzRUKUJCDjbbvhLYfJB6pV5ld49ZG9k,2998
|
||||
slowapi-0.1.9.dist-info/RECORD,,
|
||||
slowapi-0.1.9.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
||||
slowapi-0.1.9.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
|
||||
slowapi/__init__.py,sha256=wjSceNeQ5l5Bf47zYu8_n5Yfl_bYJprYjv2YNZ-VxgU,116
|
||||
slowapi/__pycache__/__init__.cpython-311.pyc,,
|
||||
slowapi/__pycache__/errors.cpython-311.pyc,,
|
||||
slowapi/__pycache__/extension.cpython-311.pyc,,
|
||||
slowapi/__pycache__/middleware.cpython-311.pyc,,
|
||||
slowapi/__pycache__/util.cpython-311.pyc,,
|
||||
slowapi/__pycache__/wrappers.cpython-311.pyc,,
|
||||
slowapi/errors.py,sha256=CjR7Tm3m57mY91oLq89INB3l5qaP_0zhNnW-EajEs58,657
|
||||
slowapi/extension.py,sha256=DKCovaghX8CPV_Hd3eo3M02J5iqIyL_bYLdVmmW1pas,35120
|
||||
slowapi/middleware.py,sha256=ee2xMy0jCrL3Q06lpPFqUNBhLrddBgzihlAxD5jDyqo,7378
|
||||
slowapi/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
||||
slowapi/util.py,sha256=RT9-kz4EAo5x9TfsFrZCJRjbp1UEfovkB8E4Spk3MQI,842
|
||||
slowapi/wrappers.py,sha256=IoNkZzdnKE12nISspzgIefCWiJT6yqcDEWzO_WuG3pQ,3870
|
@ -0,0 +1,4 @@
|
||||
Wheel-Version: 1.0
|
||||
Generator: poetry-core 1.8.1
|
||||
Root-Is-Purelib: true
|
||||
Tag: py3-none-any
|
Reference in New Issue
Block a user