GitXplorerGitXplorer
s

rush

public
59 stars
10 forks
6 issues

Commits

List of commits on branch master.
Verified
170ef3bd1f57dd89322d2a8a1d0e0e4d080d66e5

Merge pull request #19 from sigmavirus24/dependabot/pip/examples/flask/redis-4.3.6

ssigmavirus24 committed 2 years ago
Verified
94ba81fe677989dcee63f41c82265ddb20008a02

Bump redis from 3.5.3 to 4.3.6 in /examples/flask

ddependabot[bot] committed 2 years ago
Verified
562a71f9ae9598fa1dbc341ae408e30f3afa4e5a

Merge pull request #15 from sigmavirus24/dependabot/add-v2-config-file

ssigmavirus24 committed 4 years ago
Verified
3e2857c9e56ef5ebfa1881f0d442b8ccc25d4f4a

Upgrade to GitHub-native Dependabot

ddependabot-preview[bot] committed 4 years ago
Verified
7f1b22f536dc8b00b872f32c6bf8ae6682781dc6

Merge pull request #14 from sigmavirus24/dependabot/pip/examples/flask/jinja2-2.11.3

ssigmavirus24 committed 4 years ago
Verified
f2fab7f892582f09cb13b019c87885c5602abd6f

Create SECURITY.md

ssigmavirus24 committed 4 years ago

README

The README file for this repository.

=============================== rush: A library for throttles

|build-status| |coverage-status| |docs|

This library is a small collection of algorithms that can be reused when throttling user interactions with a resource (e.g., an API).

This library strives to allow any limiter and backing store to be used together without needing to be worried about potential compatibility.

Installation

.. code::

pip install rush

.. code::

pipenv install rush

Features

  • A basic periodic interval rate limiter - N accesses per period of time. An example would be the GitHub API that limits authenticated users to 5,000 requests per hour.

  • A leaky bucket rate limiter based off of the Generic Cell Ratelimiting Algorithm (a.k.a, GCRA).

  • A Redis storage backend for rate limit results so that users can have state persisted across machines and application restarts.

  • A in-memory dictionary storage backend for quick prototyping and testing.

  • Type annotations built into the library, verified with mypy, and distributed to users.

Quality

  • 100% test coverage

  • Code auto-formatted by Black (CI will check if formatting wasn't run prior to push)

  • Commit messages following a uniform Kernel-like style

  • Flake8, pylint, mypy, and bandit linting

  • Complete type annotations

  • Complete documentation linted by doclint and strictly compiled by Sphinx

Contributing

  • All contributors are expected to read and follow our Code of Conduct_.

  • To reduce the initial friction of submitting a pull request:

    • Please run tox prior to submitting your pull request.

    • After a commit, please run tox -e commitlint.

  • To make it easier to support you, please gather the following information prior to filing an issue:

    • How you installed rush and the versions of its dependencies (if you're using the Redis store, please include rfc3986 and redis version information).

    • What stores and limiters are you using?

    • An example that reproduces your problem

.. links

.. _Code of Conduct: ./CODE_OF_CONDUCT.txt .. |build-status| image:: https://travis-ci.org/sigmavirus24/rush.svg?branch=master&style=flat :target: https://travis-ci.org/sigmavirus24/rush :alt: Build status .. |coverage-status| image:: http://codecov.io/github/sigmavirus24/rush/coverage.svg?branch=master :target: http://codecov.io/github/sigmavirus24/rush?branch=master :alt: Test coverage .. |docs| image:: https://readthedocs.org/projects/rush/badge/?version=latest&style=flat :target: http://rush.readthedocs.io/ :alt: Documentation

.. vim:set tw=72