Skip to content

Repository files navigation

Litefs

GitHub forksGitHub forksGitHub forks

GitHub release (latest by date)GitHub top languageGitHub code size in bytesGitHub commit activityPyPI - Downloads

Litefs 是一个轻量级的 Python Web 框架,提供高性能的 HTTP 服务器、现代路由系统、WSGI/ASGI 支持、中间件系统、缓存管理等功能。

🌟 特性亮点

  • 高性能 HTTP 服务器 - 支持 epoll、greenlet 和 asyncio
  • 现代路由系统 - 装饰器风格、方法链风格,支持路径参数
  • WSGI/ASGI 兼容 - 支持 Gunicorn、Uvicorn、UWSGI 等服务器
  • 中间件系统 - 日志、安全、CORS、限流、健康检查
  • 多级缓存 - Memory、Tree、Redis、Database、Memcache 后端
  • 会话管理 - Database、Redis、Memcache 后端支持
  • 认证授权 - JWT Token、OAuth2 社交登录(GitHub、Google、微信、企业微信)
  • WebSocket 支持 - 实时通信、房间管理、心跳检测
  • Celery 集成 - 异步任务队列、定时任务
  • OpenAPI 文档 - 自动生成 Swagger UI 文档
  • 静态文件服务 - 自动 MIME 类型、安全防护、子路径访问
  • 健康检查 - 内置健康检查端点
  • 文件监控 - 热重载支持
  • Python 3.8+ 支持 - 兼容多个 Python 版本

📖 文档

完整文档已迁移至 Docsify:

🚀 快速开始

安装

pip install litefs

或从源码安装:

git clone https://github.com/leafcoder/litefs.git
cd litefs
pip install -r requirements.txt
python setup.py install

基本示例

装饰器风格

fromlitefs.coreimportLitefsfromlitefs.routingimportget, postapp=Litefs(host='0.0.0.0', port=8080, debug=True)
@get('/', name='index')defindex_handler(request):
return'Hello, World!'@get('/user/{id}', name='user_detail')defuser_detail_handler(request, id):
returnf'User ID: {id}'@post('/login', name='login')deflogin_handler(request):
username=request.data.get('username')
password=request.data.get('password')
return {'status': 'success', 'username': username}
app.register_routes(__name__)
app.run()

方法链风格

fromlitefs.coreimportLitefsapp=Litefs()
defindex_handler(request):
return'Hello, World!'defuser_detail_handler(request, id):
returnf'User ID: {id}'app.add_get('/', index_handler, name='index')
app.add_get('/user/{id}', user_detail_handler, name='user_detail')
app.run()

WSGI 部署

创建 wsgi.py

fromlitefs.coreimportLitefsapp=Litefs()
@get('/', name='index')defindex_handler(request):
return'Hello, World!'application=app.wsgi()

使用 Gunicorn:

gunicorn -w 4 -b :8000 wsgi:application

使用 Uvicorn (ASGI):

uvicorn asgi:application --host 0.0.0.0 --port 8000 --workers 4

📁 项目结构

litefs/
├── README.md # 项目说明
├── pyproject.toml # 项目配置
├── setup.py # 安装脚本
├── docs/ # 文档目录
│ ├── README.md # 文档导航
│ └── source/ # 文档源文件
│ ├── getting-started.md
│ ├── routing-guide.md
│ ├── middleware-guide.md
│ ├── auth-system.md
│ ├── websocket.md
│ ├── celery-integration.md
│ ├── openapi-integration.md
│ └── ...
├── examples/ # 示例代码
│ ├── 01-quickstart/
│ ├── 02-rest-api/
│ ├── 03-web-app/
│ ├── 04-realtime/
│ └── 05-production/
├── src/litefs/ # 源代码
│ ├── __init__.py
│ ├── core.py
│ ├── routing/
│ ├── middleware/
│ ├── auth/
│ ├── websocket/
│ ├── tasks/
│ ├── openapi/
│ ├── cache/
│ ├── session/
│ └── ...
└── tests/ # 测试代码
├── unit/
├── integration/
└── performance/

📚 示例代码

Litefs 提供了丰富的示例,按照功能模块组织:

每个示例都包含详细的 README 文档和可运行的代码,请参考 examples/README.md 了解更多。

📊 性能测试

LiteFS 提供完整的性能测试套件,支持多种服务器模式和部署方案的对比测试。

测试矩阵

服务器形式单进程多进程测试场景
LiteFS HttpServer✅ (4/8 Worker)Hello World
LiteFS + Gunicorn (gevent)✅ (4/8 Worker)Hello World
FastAPI + Gunicorn + UvicornWorker (对照组)✅ (4/8 Worker)Hello World
FastAPI + Uvicorn (对照组)✅ (4/8 Worker)Hello World

性能测试结果

测试环境: 12 核 CPU, Python 3.10.9, Linux 6.18 测试工具: Apache Benchmark (ab), 10000 请求, 3 次迭代取中位数 测试时间: 2026-05-19

1 Worker 性能对比 (req/s)

并发数LiteFS+HttpServerLiteFS+GunicornFastAPI+Gunicorn+UvicornFastAPI+Uvicorn优势倍数 (HS vs GU)
1007,9775,2592,8042,9842.84x
5004,8655,2723,0712,3881.58x
10006,0685,0762,7772,6922.18x

4 Worker 性能对比 (req/s)

并发数LiteFS+HttpServerLiteFS+GunicornFastAPI+Gunicorn+UvicornFastAPI+Uvicorn优势倍数 (HS vs GU)
10015,85113,1173,8615,0194.10x
5009,89510,1335,9065,2281.67x
100012,7836,6664,6626,0012.74x

8 Worker 性能对比 (req/s)

并发数LiteFS+HttpServerLiteFS+GunicornFastAPI+Gunicorn+UvicornFastAPI+Uvicorn优势倍数 (HS vs GU)
10019,59013,7065,3166,8453.68x
50012,2917,1216,7985,9051.80x
100011,5189,9526,7106,7421.71x

性能特点

  • LiteFS HttpServer 最高 RPS: 8 Worker / 100 并发下达 19,590 req/s
  • 多 Worker 扩展性优异: 从 1 Worker 到 8 Worker,RPS 提升 2.5 倍
  • 低并发优势最大: 100 并发下 LiteFS HttpServer 是 FastAPI 的 2.8~4.1 倍
  • 高并发依然领先: 即使 1000 并发,LiteFS 仍保持 1.7~2.7 倍优势
  • 内置服务器最优: LiteFS HttpServer 在所有场景下均优于 Gunicorn 部署

快速开始

# 进入测试目录cd tests/performance
# 运行完整性能测试
bash run_test.sh
# 测试完成后查看报告
cat performance_report.md

测试配置

参数默认值说明
总请求数10,000ab -n 参数
预热请求数1,000消除冷启动影响
迭代次数3取中位数减少波动
并发级别100 / 500 / 1000ab -c 参数
Worker 数1 / 4 / 8多进程对比
冷却间隔2s确保端口完全释放

输出报告

测试完成后在 tests/performance/ 目录生成:

  • performance_report.md - 详细性能测试报告
  • test_results/ - 原始测试数据

报告包含:

  • 各部署模式 RPS 性能对比
  • 多 Worker / 多并发级别交叉对比
  • LiteFS vs FastAPI 优势倍数
  • 性能分析及建议

🧪 测试

运行单元测试:

pytest tests/unit/ -v --cov=litefs --cov-report=html

运行性能测试:

cd tests/performance && bash run_test.sh

查看测试覆盖率:

make coverage

📊 测试覆盖率

当前测试覆盖率:52%

目标:80%+

详细测试报告见 单元测试文档

🔧 开发指南

本地开发

# 克隆仓库
git clone https://github.com/leafcoder/litefs.git
cd litefs
# 安装依赖
pip install -r requirements.txt
# 安装开发依赖
pip install -r requirements-dev.txt
# 运行测试
pytest
# 构建文档
make docs-build
# 运行文档服务器
make docs-serve

代码规范

  • 遵循 PEP8 规范
  • 使用类型注解
  • 编写单元测试
  • 保持文档更新

🤝 贡献

欢迎贡献代码、文档和建议!

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

📄 License

MIT License - 详见 LICENSE 文件。

🔗 相关链接


如果这个项目对你有帮助,请给一个 ⭐️ Star 支持!

About

Build a web server framework using Python. Litefs was developed to implement a server framework that can quickly, securely, and flexibly build Web projects. Litefs is a high-performance HTTP server. Litefs has the characteristics of high stability, rich functions, and low system consumption.

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages