跳转到主要内容

限制算法库

项目描述

Build status Test coverage Documentation

此库是一组算法集合,可以在限制用户与资源(例如API)交互时重用(例如)。

此库力求允许任何限制器和后端存储一起使用,而无需担心潜在的兼容性问题。

安装

pip install rush
pipenv install rush

特性

  • 基本的周期性间隔速率限制器 - 每段时间内的N次访问。例如,GitHub API限制认证用户每小时最多5000次请求。

  • 基于通用单元速率限制算法(即GCRA)的漏桶速率限制器。

  • Redis存储后端,用于存储速率限制结果,以便用户可以在机器和应用程序重启之间保持状态。

  • 内存字典存储后端,用于快速原型设计和测试。

  • 库内构建的类型注解,经mypy验证,并分发给用户。

质量

  • 100%测试覆盖率

  • 由Black自动格式化代码(CI将在推送前检查是否已运行格式化)

  • 遵循统一内核样式的提交消息

  • Flake8, pylint, mypy和bandit代码审查

  • 完整的类型注解

  • 由doclint审查的完整文档,并严格由Sphinx编译

贡献

  • 所有贡献者都应阅读并遵守我们的行为准则

  • 为了减少提交拉取请求的初始摩擦

    • 请在提交拉取请求之前运行 tox

    • 提交后,请运行 tox -e commitlint

  • 为了更容易支持您,请在提交问题之前收集以下信息

    • 您是如何安装 rush 及其依赖项的版本(如果您使用 Redis 存储,请包括 rfc3986redis 的版本信息)。

    • 您正在使用哪些存储和限制器?

    • 重现您问题的示例

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

rush-2021.4.0.tar.gz (15.4 kB 查看哈希值)

上传时间

构建分发

rush-2021.4.0-py3-none-any.whl (18.6 kB 查看哈希值)

上传时间 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面