网络与下载
IriX 的所有对外 HTTP 请求都由 Rust 处理。Dart 侧只负责发起调用与接收结果。
| 场景 | Dart 入口 | Rust 底层 |
|---|---|---|
| 小 / 中响应(API 调用) | HttpFfiService(lib/services/http_ffi.dart) |
http_client crate |
| 大文件下载 | Downloader.downloadFile(lib/services/downloader.dart) |
downloader crate |
通用 HTTP 请求
Section titled “通用 HTTP 请求”http_client crate 支持 GET / POST / PUT / PATCH / DELETE / HEAD 方法,响应以 base64 体返回。适用于 API 调用等小 / 中响应场景。
流式 / 分片下载
Section titled “流式 / 分片下载”downloader crate 提供流式写盘与分片下载能力,支持断点续传,适合服务器文件、模组包等大文件场景。
- 新增 API 服务禁止使用
package:http(仅测试用例保留) - 本地回环 HTTP 服务端例外:OAuth 回调、MCP 服务端仍使用
dart:io HttpServer - 底层均为 ureq + rustls,无 OpenSSL 依赖,部署与交叉编译更简单
Flutter UI │ Downloader.downloadFile ▼FFI 调用 xmc_downloader │ ▼downloader crate ├──► HTTP 服务器(ureq + rustls) └──► 本地文件(流式写盘) │ ▼进度回调 ──► UI 进度条