Files
Aether/aether-hub
fawney19 0342f609d0 feat(tunnel): 请求体流式传输 & OpenAI CLI 请求 key 排序优化
Hub 端:
- open_local_stream 不再接收 body 参数,改为通过 push_local_request_body 分块推送
- 请求体按 32KB 分帧发送,避免大请求一次性压缩和传输
- local_relay 改为流式解析 envelope 和转发请求体

Proxy 端:
- stream_handler 改为流式传输请求体到上游,不再预先收集完整 body
- upstream_client 请求体类型从 Full<Bytes> 改为 UnsyncBoxBody 以支持流式传输
- dispatcher 将 StreamEnd/StreamError 事件转发给 stream handler

Python 端:
- hub_transport relay envelope 改为异步生成器流式发送
- 提取 reorder_openai_cli_request_prefix_keys 为公共函数
- Codex passthrough 路径也应用稳定的前缀 key 排序
2026-03-17 22:07:09 +08:00
..

aether-hub

aether-hub 是 Tunnel Hub 服务,负责在 proxy 与 worker 之间路由帧。

已集成在Docker镜像中, 无需单独部署。

部署端指定 Hub 版本并构建

cd /path/to/Aether
./deploy.sh --hub-tag hub-v0.1.0

不指定 --hub-tag 时,./deploy.sh 会自动解析最新 hub-v* release并在构建 app 镜像时从 GitHub Release 下载对应架构的 Hub 二进制。

build.sh 模式说明

  • 默认是 binary 模式(cross 构建二进制)。
  • --upload <hub-vX.Y.Z> 会把构建产物上传到 GitHub Release。
  • --image 后进入镜像模式(docker buildx,可选)。

常用参数:

  • --tag <tag>: 镜像 tag
  • --image-name <name>: 镜像名(默认 ghcr.io/fawney19/aether-hub
  • --platforms <list>: 例如 linux/amd64,linux/arm64
  • --push: 推送镜像
  • --load: 加载到本地 Docker单平台
  • --latest: 额外打 latest tag

运行时参数

  • TUNNEL_HUB_WORKER_IDLE_TIMEOUTworker 心跳空闲超时,默认 60
  • TUNNEL_HUB_OUTBOUND_QUEUE_CAPACITY:单连接出站队列容量,默认 128;队列打满时会把连接视为拥塞并主动关闭,避免 Hub 内存无限增长

与部署脚本关系

  • ./deploy.sh: 本地构建部署(会本地构建 app/base并在构建 app 时从 GitHub Release 下载 Hub可用 --hub-tag 固定版本)。