fluxdown 中文文档 下载 App

GPUI 原生界面 — 没有 Electron,GPU 直接画窗口

什么是 GPUI

GPUI 是 Zed 编辑器背后的开源 Rust 原生 UI 框架。它的核心思想是「GPU 直接画界面」——界面元素不是浏览器 DOM 渲染的,而是直接提交到 GPU buffer 上。FluxDown 桌面端是第一个用 GPUI 写的下载管理器。

和 Electron 方案的区别

维度ElectronGPUI 原生
启动时间冷启动约 1–3 秒(Chromium 初始化)冷启动 < 500 ms
空闲内存典型 200–400 MB典型 20–50 MB
进程数Chromium 多进程单进程渲染(下载进程独立)
跨平台一致性浏览器内核自带,基本一致框架自己在各平台实现窗口层
渲染依赖ChromiumGPU(Metal / DX11 / Wayland)
包体积60–150 MB(含 Chromium)~10 MB(纯 Rust 二进制)

FluxDown 桌面安装包在 Electron 方案里至少要 60 MB 起步,现在压缩后约 15 MB。安装后占用不到 50 MB。

界面的样子

GPUI 让 FluxDown 能做到的几个界面特性:

  1. 启动秒显 — 冷启动直接看到主界面,没有空白白屏期。
  2. 窗口动画由 GPU 合成 — 队列滚动、进度条变化、侧边栏折叠都是流畅的 60 fps。
  3. 响应式面板布局 — 左侧状态栏 + 中间任务列表 + 右侧详情/设置面板,可拖动调整比例。
  4. 13 套内置配色 — 深色浅色各一,外加 accent 颜色可选(在「设置 → 主题」里调)。

它只是界面

重要的一点:GPUI 层只负责画界面,不执行任何下载。所有下载命令都通过本地 RPC 发给 Daemon(见 原生三层进程)。这意味着关掉桌面窗口(点击 X),下载继续跑;再打开界面,GPUI 层直接拉 Daemon 当前状态显示,不会重新启动下载引擎。

不那么理想的地方

GPUI 是比较新的框架,跨平台窗口层虽然已覆盖 Win/Mac/Linux,但一些桌面系统级集成(比如 Windows 上系统托盘的某些行为)可能不如成熟框架。官方也在持续迭代。