1Metadata-Version: 2.1 2Name: rush 3Version: 2021.4.0 4Summary: A library for throttling algorithms 5Home-page: https://github.com/sigmavirus24/rush 6Author: Ian Stapleton Cordasco 7Author-email: graffatcolmingov@gmail.com 8License: MIT 9Description: =============================== 10 rush: A library for throttles 11 =============================== 12 13 |build-status| |coverage-status| |docs| 14 15 This library is a small collection of algorithms that can be reused 16 when throttling user interactions with a resource (e.g., an API). 17 18 This library strives to allow any limiter and backing store to be used 19 together without needing to be worried about potential compatibility. 20 21 22 Installation 23 ============ 24 25 .. code:: 26 27 pip install rush 28 29 .. code:: 30 31 pipenv install rush 32 33 34 Features 35 ======== 36 37 - A basic periodic interval rate limiter - N accesses per period of time. An 38 example would be the GitHub API that limits authenticated users to 5,000 39 requests per hour. 40 41 - A leaky bucket rate limiter based off of the Generic Cell Ratelimiting 42 Algorithm (a.k.a, GCRA). 43 44 - A Redis storage backend for rate limit results so that users can have state 45 persisted across machines and application restarts. 46 47 - A in-memory dictionary storage backend for quick prototyping and testing. 48 49 - Type annotations built into the library, verified with mypy, and distributed 50 to users. 51 52 53 Quality 54 ======= 55 56 - 100% test coverage 57 58 - Code auto-formatted by Black (CI will check if formatting wasn't run prior 59 to push) 60 61 - Commit messages following a uniform Kernel-like style 62 63 - Flake8, pylint, mypy, and bandit linting 64 65 - Complete type annotations 66 67 - Complete documentation linted by doclint and strictly compiled by Sphinx 68 69 70 Contributing 71 ============ 72 73 - All contributors are expected to read and follow our `Code of Conduct`_. 74 75 - To reduce the initial friction of submitting a pull request: 76 77 - Please run ``tox`` prior to submitting your pull request. 78 79 - After a commit, please run ``tox -e commitlint``. 80 81 - To make it easier to support you, please gather the following information 82 prior to filing an issue: 83 84 - How you installed ``rush`` and the versions of its dependencies (if 85 you're using the Redis store, please include ``rfc3986`` and ``redis`` 86 version information). 87 88 - What stores and limiters are you using? 89 90 - An example that reproduces your problem 91 92 93 .. links 94 95 .. _Code of Conduct: 96 ./CODE_OF_CONDUCT.txt 97 .. |build-status| image:: https://travis-ci.org/sigmavirus24/rush.svg?branch=master&style=flat 98 :target: https://travis-ci.org/sigmavirus24/rush 99 :alt: Build status 100 .. |coverage-status| image:: http://codecov.io/github/sigmavirus24/rush/coverage.svg?branch=master 101 :target: http://codecov.io/github/sigmavirus24/rush?branch=master 102 :alt: Test coverage 103 .. |docs| image:: https://readthedocs.org/projects/rush/badge/?version=latest&style=flat 104 :target: http://rush.readthedocs.io/ 105 :alt: Documentation 106 107 .. vim:set tw=72 108 109Keywords: throttles throttle algorithm gcra redis 110Platform: UNKNOWN 111Classifier: Development Status :: 5 - Production/Stable 112Classifier: Environment :: Console 113Classifier: Intended Audience :: Developers 114Classifier: License :: OSI Approved :: MIT License 115Classifier: Programming Language :: Python 116Classifier: Programming Language :: Python :: 3.6 117Classifier: Programming Language :: Python :: 3.7 118Requires-Python: >=3.6 119Description-Content-Type: text/x-rst 120Provides-Extra: redis 121