# limits

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.

## Development

The source is available on Github

To get started

    $ git clone git://github.com/alisaifee/limits.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.

## References

> - Redis rate limiting pattern #2

> - DomainTools redis rate limiter

## Contributors

> - Timothee Groleau

> - Zehua Liu

> - David Czarnecki

> - Laurent Savaete