Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

falcon-ratelimit-1.2.tar.gz (3.8 kB view hashes)

Uploaded Source

Built Distributions

falcon_ratelimit-1.2-py3.8.egg (3.4 kB view hashes)

Uploaded Source

falcon_ratelimit-1.2-py2.py3-none-any.whl (4.4 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page