chongming-gateway (0.1.0)
Published 2026-10-13 16:54:27 +08:00 by chakcy
Installation
pip install --index-url http://124.71.68.6:3000/api/packages/chongming/pypi/simple/ --extra-index-url https://pypi.org/simple chongming-gatewayAbout this package
chongming 网关:FastAPI + Zenoh 的配置驱动微服务网关(插件路由动态挂载、Worker 服务发现与负载均衡)
chongming-gateway
chongming 网关本体:基于 FastAPI + Zenoh 的配置驱动微服务网关。负责把宿主项目里的 插件(inline 进程内 / external 独立进程)发布的路由统一挂载为 HTTP 端点,并提供 Worker 服务发现、负载均衡、超时重试、MQTT Bridge 与内置登录鉴权。
网关只提供代码,配置、插件与打包骨架由宿主项目提供(见「运行时约定」)。
安装
uv add chongming-gateway
# 或开发期可编辑安装(在 chongming-core 仓库内)
uv pip install -e gateway
快速开始
宿主项目(cwd)下需要 config.toml 与 config/workers/<type>/config.toml,插件包
(plugins.<type>)需可导入。之后任选一种启动方式:
# 按 config.toml [<env>.server] 启动(三个入口等价,仅默认服务器不同)
uv run serve # uvicorn
uv run granian # granian
uv run gunicorn # gunicorn + uvicorn worker
# 或直接把 ASGI 应用交给任意服务器
uvicorn chongming.app:app --host 0.0.0.0 --port 8000
网关在 config/workers/<name>/config.toml 的 [workers] 节按插件粒度读取加载方式
(load_mode = "inline" | "external")与副本数,启动时自动发现并挂载路由。
运行时约定
- 配置:cwd 下
config.toml(环境、服务器、安全、MQTT、缓存等)与config/workers/**(插件注册与路由定义),全部为运行期读取,随宿主项目部署。 - 插件:网关按
plugins.<type>约定导入插件包。宿主项目可通过.mbank模块银行、源码目录或任意可导入方式提供,网关不关心来源。 - 工作目录:日志、上传、数据等相对路径均以 cwd 为基准。
目录结构
src/chongming/
├── __init__.py # 启动入口(serve / granian / gunicorn)与服务器参数转换
└── app/
├── __init__.py # FastAPI 应用装配(lifespan、中间件、异常处理)
├── core/ # WorkerManager / RouteGenerator / MQTT Bridge / 日志 / 鉴权
└── routes/ # 内置管理端点(stats / worker_admin / auth)
发布
cd gateway
uv build # 产出 dist/chongming_gateway-<version>-py3-none-any.whl
uv run twine upload --repository <私有源> dist/*
发版后,依赖方(含本仓)执行 uv lock --upgrade-package chongming-gateway 刷新 pin。
本仓 pyproject.toml 通过 path source 直接使用本地源码,不需要等发布。
Requirements
Requires Python: >=3.12
Details
2026-10-13 16:54:27 +08:00
Assets (1)
Versions (2)
View all
PyPI
4
84 KiB