从此开始

SimpleFetch - AstroBox 网络桥接插件,代理快应用的 HTTP / SSE 请求

SimpleFetch 是一款运行在 AstroBox 上的网络桥接插件。部分小米手环 / 手表设备本身不支持 @system.fetch,无法直接联网;SimpleFetch 在手机端充当「网络代理」,让接入协议的快应用也能自由发起 HTTP / SSE 请求。

它解决什么问题

在 Vela 快应用生态中,不少设备(如小米手环 8/9/10 Pro、Redmi Watch 4 等)由于系统限制不支持 fetch,快应用无法直接访问网络。SimpleFetch 通过 AstroBox 的互联通道(interconnect)在手机与手表之间建立一座桥:

快应用  ──SF_REQUEST──▶  SimpleFetch 插件  ──真实 HTTP──▶  服务器
   ▲                                                        │
   └──────────────── SF_RESPONSE ◀──────────────────────────┘

快应用只需接入 SimpleFetch 协议,无需关心手机端如何执行请求;握手成功后,所有 fetch 请求会自动改走桥接通道。

核心特性

工作流程

  1. 用户在 AstroBox 连接页点击 [连接](或快应用在「偏好设置 → 连接桥接网络」主动发起);
  2. 握手成功后,快应用设置 global.NetworkStatus = 'bridge',所有 fetch 请求改走互联通道;
  3. 插件收到 SF_REQUEST 后执行真实 HTTP 请求,并将结果按 SF_RESPONSE 格式回传;
  4. 心跳维持连接,断开时自动回退网络状态。

手机端配套的快应用示例可参考 ResonaUI。

快速导航

技术栈

  • Rust + wit-bindgen —— Component Model 异步绑定
  • WASI HTTP —— 真实 HTTP / SSE 请求执行
  • flate2 —— gzip / deflate 自动解压
  • base64 —— 大响应体编码分片

许可证

本项目采用 GNU AGPL v3.0 许可证。

大纲