chongming

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-gateway

About 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
PyPI
2026-10-13 16:54:27 +08:00
4
84 KiB
Assets (1)
Versions (2) View all
0.1.1 2026-10-14
0.1.0 2026-10-13