olc-python:基于 Python 的 Web 框架过载控制库

olc-python 是一个高性能的过载控制库,为 python 应用提供限流和过载保护能力

Branch1Tags2

OLC (Overload Control Library)

一个强大的过载控制库,支持多种 Web 框架的限流和过载保护。

特性

  • 🚀 高性能限流: 支持 QPS 限流、并发限流、配额限流等多种限流策略
  • 🔌 框架适配器: 支持 FastAPI、Flask、Django 等主流 Web 框架
  • 📦 按需安装: 使用 Poetry extras 实现依赖隔离,用户可按需安装适配器
  • ⚙️ 灵活配置: 支持 从本地远端 等多种配置获取方式
  • 🎯 精准匹配: 基于标签的请求匹配和分组限流
  • 📊 统计监控: 内置统计功能,支持实时监控和告警

安装

用户安装

只安装核心库

如果你只需要核心限流功能,不使用任何框架适配器:

pip install olc

安装特定框架适配器

根据你使用的 Web 框架,选择安装对应的适配器:

# FastAPI 适配器
pip install olc[fastapi]

# Flask 适配器(未来支持)
pip install olc[flask]

# Django 适配器(未来支持)
pip install olc[django]

# 安装所有适配器
pip install olc[all]

使用 Poetry 安装

# 只安装核心库
poetry add olc

# 安装 FastAPI 适配器
poetry add olc[fastapi]

开发环境安装

前置要求

  • Python >= 3.11
  • Poetry >= 2.0.0

克隆项目

git clone <repository-url>
cd olc

安装开发依赖

# 安装所有依赖
 poetry install --all-extras

运行测试

# 运行所有测试
python -m unittest discover 

快速开始

FastAPI 示例

参考 FastAPI 示例

文档

使用者手册

面向 OLC 用户,侧重安装、配置和使用方法:

开发者手册

面向项目贡献者,侧重架构设计和扩展开发:

架构

olc/
├── adapters/           # 框架适配器
│   ├── fastapi/       # FastAPI 适配器
├── admission/         # 准入控制
├── alg/              # 算法模块
├── bean/             # 数据模型
├── control/          # 控制逻辑
├── limit/            # 限流器
├── rule/             # 规则管理
└── utils/            # 工具函数

测试

项目包含完整的测试套件:

# 运行所有测试
pytest tests/ -v

# 运行适配器测试
pytest tests/adapters/ -v

# 运行覆盖率测试
pytest tests/ --cov=olc --cov-report=html

贡献

欢迎贡献代码!请遵循以下步骤:

  1. Fork 项目
  2. 创建特性分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m 'Add some amazing feature')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 创建 Pull Request

联系方式

如有问题或建议,请提交 Issue 或 Pull Request。