limits is a python library to perform rate limiting with commonly used storage backends (Redis, Memcached & MongoDB).

Get started by taking a look at Installation and Quickstart.

To learn more about the different strategies refer to the Rate limiting strategies section.

For an overview of supported backends refer to Storage Backends.


The source is available on Github

To get started

$ git clone git://
$ cd limits
$ pip install -r requirements/dev.txt

Since limits integrates with various backend storages, local development and running tests requires a a working docker & docker-compose installation.

Running the tests will start the relevant containers automatically - but will leave them running so as to not incur the overhead of starting up on each test run. To run the tests:

$ pytest

Once you’re done - you will probably want to clean up the docker containers:

$ docker-compose down

Projects using limits

  • Flask-Limiter : Rate limiting extension for Flask applications.

  • djlimiter: Rate limiting middleware for Django applications.

  • sanic-limiter: Rate limiting middleware for Sanic applications.

  • Falcon-Limiter : Rate limiting extension for Falcon applications.

  • django-ratelimiter: Rate limiting decorator and middleware for Django applications.