I’m Using GPUI For Everything

I’m Using GPUI For Everything
主持人Scott Tolinski、Wes Bos
32:44·2026-09-30·原始音频 ↗

核心摘要

本期是单一主题集:斯科特·托林斯基向韦斯·博斯完整介绍 GPUI——Zed 团队的 GPU 加速 Rust UI 框架,并论证它已在自己的工作流里取代了 Electron 和 Tauri。切入角度是 Web 开发者的视角:GPUI 保住了 React 式的心智模型——组件、props、state、render 函数和显式的 notify——样式则变成读起来像 Tailwind 的链式内联方法。一次现场翻文档发现布局只有 flexbox、没有 CSS grid;GPUI Kit 组件库被呈现为真正实用的解锁点,其 data table 与虚拟化被点名表扬。节目中段处理社区摩擦:GPUI CE 分支的出现源于贡献者认为 Zed 团队只优先满足自身需求,维护者的一段引述解释了 GPUI Kit 拒绝支持该分支的原因。斯科特展示了他用 GPUI 已经做出的小型个人工具——跨机器项目监视器、Hazel 式文件自动化、窗口摆放工具——并把整个论证落在体积经济上:DaisyDisk 更新只有八兆,而 Electron 同类约为 267 MB。缺点也直言不讳:UI 非原生、Web 目标走 WASM 而非 DOM、生态年轻、实际上只限桌面端、测试需要 computer-use 工具——他用自己的无障碍树驱动 Jev 测试项目应对。结论:不适合移动端和 Web,适合小型原生桌面软件,AI 智能体写 Rust 的水平够用。以上均为发言人观点,非独立核实结论。

章节看点与核心要点

9 条
  1. GPUI 给 Web 开发者一套类 React 的 API——组件、props、state、render 和显式 notify——装在一个原生 Rust 程序里,从 React 迁移的成本因此很低。

  2. 斯科特反对原生 WebView 桌面应用的理由是 macOS 特有的:WKWebView 的功能集贫弱且版本不可预测,因为引擎版本不随应用固定;Electron 则可以随包发指定版本的 Chromium。

  3. GPUI 当前的布局只有 flexbox——文档里没有 CSS grid——变通办法是在 Rust 里编程排版。

  4. GPUI 应用是一个 Rust 程序:UI 与逻辑同进程,无需构建 RPC 层;GPUI 本身只是 UI 层,接到现有应用上即可。

  5. GPUI Kit 是实用的解锁点——一个 shadcn 规模的组件库,其 data table 自带虚拟化和排序——没人应该从原语开始重造每个组件。

  6. 原生工具的体积经济是本期最具体的锚点:DaisyDisk 八兆的更新对上假想中 267 MB 的 Electron 版,外加每个闲置 Chromium 的内存。

  7. GPUI CE 分支反映出社区认为 Zed 团队只发布服务于自身的功能;GPUI Kit 维护者拒绝支持它,理由是只有被真实应用验证过的项目才能改进框架。

  8. 明确的缺点:非原生 UI 元素、Web 端走 WASM 而非 DOM、生态年轻、实际上仅限桌面、测试靠 computer-use 而非浏览器自动化。

  9. 最终结论:移动端和 Web 应用都选错了工具,快速小型个人桌面软件才是正解——配上最佳实践 skill 的 AI 智能体能把 GPUI 的 Rust 写好。

深度解读

长文 · 完整解读

为什么用 GPUI 而不是 Electron 写桌面应用?

斯科特·托林斯基在 Syntax 上的论证:对小型个人桌面软件,随包附带的 Chromium 得不偿失。Zed 背后的 Rust 框架 GPUI 在单个原生程序里保住类 React 的 API,靠 GPUI Kit 把工具更新压到兆级;非原生 UI、Web 只有 WASM、生态年轻,是他明说的代价。

阅读完整文章

访谈精粹

5 组核心对谈
  • 问

    GPUI 有没有把 Web 开发者习以为常的 CSS 能力都实现出来?

    Wes Bos 提问11:23
    答
    Scott Tolinski 回答

    就斯科特的实际体验,样式层把他试过的东西都做出来了:阴影、透明度、纹理、背景、循环背景,还有弹簧动画,官方文档里给了旋转 SVG 的示例。样式写法是在单个元素上链式调方法,他自嘲这套东西像「Tailwind 类名膨胀」混上 jQuery 链式调用,文件因此很长。但这对他影响不大:大部分代码是 AI 智能体写的,而且写得不错。他不认为 GPUI 覆盖了 CSS 的全部,只是到目前为止想要的效果没有缺过。

  • 问

    GPUI 的布局既支持 flexbox 也支持 CSS grid 吗?

    Wes Bos 提问12:52
    答
    Scott Tolinski 回答

    两人现场翻文档,只找到 flexbox,任何地方都没有 CSS grid,双方都承认这是 GPUI 当下的一个真实局限。斯科特补充:可以在 Rust 代码里自己量尺寸、用程序方式完成大部分排版,况且 CSS grid 出现之前 Web 开发者也一直这么做;韦斯则说真遇到类似需求,碰到的可能是 subgrid 式的缺口。一句话:现在布局只有 flex 可用。

  • 问

    用 GPUI 开发桌面应用,像视频处理这类重活需要独立后端进程吗,还是逻辑就写在同一个程序里?

    Wes Bos 提问14:18
    答
    Scott Tolinski 回答

    不需要。GPUI 应用就是一个 Rust 程序:界面和业务逻辑在同一个代码库里,调函数就是直接调用,省掉了 Electron 里进程之间那层 RPC。斯科特特别强调 GPUI 只负责 UI——把它接到现有的 Rust 应用上,架构完全由你自己定;相比之下 Electron 对这套拆分更有主见。