A rate limiter plugin for Falcon
Project description
falcon-ratelimit
================
Rate limiter for Falcon. Install with:
pip install falcon-ratelimit
Use like:
import falcon
from falconratelimit import rate_limit
class NoRedisResource(object):
@falcon.before(rate_limit(per_second=5, window_size=30,
resource='resource_name'))
def on_post(self, req, resp):
...
class RedisResource(object):
@falcon.before(rate_limit(redis_url='localhost:6379', per_second=1,
window_size=10))
def on_post(self, req, resp):
...
This package works by limiting the number of requests using two variables
per_second and window_size. In the first example above, the
NoRedisResource class is restricted to 5 requests per second over a 30 second
window meaning that there is a limit of 150 requests over 30 seconds. The
default storage of calling the rate_limit decorator is an in memory list to
store the number of requests for the given user using the resource
resource_name.
The second example implements the optional storage to use Redis by passing in a
redis_url to store user request data. Using Redis allows for the rate
limiting to be implemented across multiple instances of a particular
application. In the RedisResource class example the user is allowed to make
1 request per second over 10 seconds meaning that there is a limit of 10
requests over 10 seconds. Since this example didn't pass in a resource it
uses default as the name for request storage.
If you do not have the redis package installed, Redis-related functionality
will not work.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file falcon-ratelimit-1.2.tar.gz.
File metadata
- Download URL: falcon-ratelimit-1.2.tar.gz
- Upload date:
- Size: 3.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.44.1 CPython/3.8.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b67b1be7c975b76bf8c6e594afe937193b09fee7b528667075c2a074f2c5cf4a
|
|
| MD5 |
f6b7a71b812c3789ff49b738bb67dd62
|
|
| BLAKE2b-256 |
8b37f58de70a609c9c3ca2f96e73d5eaab153efd26d0970f849f14922b075edd
|
File details
Details for the file falcon_ratelimit-1.2-py3.8.egg.
File metadata
- Download URL: falcon_ratelimit-1.2-py3.8.egg
- Upload date:
- Size: 3.4 kB
- Tags: Egg
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.44.1 CPython/3.8.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9c97f8995cd5a2fc46194fc3284c2336e9858ae1533f0f655f73912d81aa983f
|
|
| MD5 |
f528524905c0b9cd5b26eb3adf07d292
|
|
| BLAKE2b-256 |
42fcf08462c5d8a785973e14c1f25a0c47f136ff6d7cc0a75acf5c9350414fcb
|
File details
Details for the file falcon_ratelimit-1.2-py2.py3-none-any.whl.
File metadata
- Download URL: falcon_ratelimit-1.2-py2.py3-none-any.whl
- Upload date:
- Size: 4.4 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.44.1 CPython/3.8.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d732531d9baf9d75fd7259d7670f192b836a90e8805491a42846f1c145c68ecc
|
|
| MD5 |
71f33b050048140b2e89349029f33f28
|
|
| BLAKE2b-256 |
c3ceb78adc0d98c95d306bc093991c7531334fb7e2f9d8cb6a9cfc4e1bb68ae7
|