用过 Electron 的兄弟都懂,好处是"会前端就能写桌面",坏处嘛,三座大山压得喘不过气:

-
体积巨婴
空项目打出来
100 M+,每次更新又得80 M,用户宽带不要钱? -
内存老虎
开个
"Hello World"常驻300 M,再开几个窗口,直接1 G起步,Mac 用户看着彩虹转圈怀疑人生。 -
启动慢动作
双击图标 → 图标跳 → 白屏
3秒 → 终于看见界面,节奏堪比56 K猫拨号。
老板还天天催:"两周给我 MVP!"------ 抱着 Electron,就像抱着一只会写代码的胖熊猫,可爱但跑不动。
主角登场:GPUI
Rust 圈最近冒出一个"狠角色"------GPUI。
GPUI ,是 Zed 编辑器团队推出的 Rust UI 框架,以 GPU 加速和高效渲染模式悄然崛起。

它不卖广告,纯开源,一句话介绍:直接拿显卡画界面,浏览器啥的全部踢出去。
- 底层用
wgpu,Metal/Vulkan/DX12想调谁就调谁; - 上层给前端味道的
DSL,写起来像React,跑起来却是纯原生; - 安装包
12 M,内存50 M,启动0.4秒,表格滑到60帧不带喘。
说人话:把 Electron 的"胖身子"抽真空,留下一身腱子肉。
亮点:为什么值得换坑?
| 场景 | Electron 现实 | GPUI 现实 |
|---|---|---|
| 安装包 | 100 M+ 是常态 | 12 M 起步,单文件都能带走 |
| 空载内存 | 一开 300 M,再开几个窗口直奔 1 G | 50 M 晃悠,再多窗口也淡定 |
| 启动速度 | 白屏 2~3 秒 | 肉眼可见 0.4 秒 |
| 大数据表格 | 十万行就卡成 PPT | 百万行照样 60 fps,滑到飞起 |
| 主题切换 | 重载 or 重启 | 一行代码,热切换,深色浅色瞬间完成 |

外加 60+现成组件:按钮、表格、树、日历、Markdown、穿梭框......皮肤直接照搬 Web 圈最火的 shadcn/ui,设计师不用改稿,开发直接复制粘贴。
五分钟上手:从零到 Hello Window
① 先装 Rust
bash
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
一路回车即可,30 秒搞定。
② 新建工程
bash
cargo new my-app && cd my-app
③ 把依赖写进 Cargo.toml
toml
[dependencies]
gpui = "0.2"
gpui-component = "0.1"
④ src/main.rs 写几行
rust
use gpui::*;
fn main() {
App::new().run(|cx: &mut AppContext| {
Window::new("win", cx)
.title("我的第一个 GPUI 窗口")
.build(cx, |cx| {
Label::new("Hello,GPUI!", cx)
})
.unwrap();
});
}
⑤ 跑!
bash
cargo run
三秒后窗口蹦出来,Hello 世界完成。没有黑框,没有白屏,体验跟原生记事本一样丝滑。
写代码像 React,跑起来像 C++
组件化 + 事件回调,前端同学一看就懂:
rust
Button::new("点我下单", cx)
.style(ButtonStyle::Primary)
.on_click(|_, cx| {
println!("订单已发送");
notify_user("成交!", cx);
})
背后是 Rust 的零成本抽象,编译完就是机器码,没有浏览器,没有虚拟机,没有 GC 卡顿,性能直接拉满。
老网页也别扔,一键塞进来
历史项目里还有 React 报表?开 webview 特性就行:
toml
gpui-component = { version = "0.1", features = ["webview"] }
窗口里留一块"浏览器区域 ",把旧地址挂进去,零改动复用,妈妈再也不用担心重写代码。
Electron 依然是老大哥,但"胖身子"在 2025 年真的有点跟不上节奏。
新项目、新团队、新想法,不妨给 GPUI 一个机会------试过之后,你可能再也回不去了。
- GPUI 官网 :
https://www.gpui.rs/ - GPUI Component 官网 :
https://longbridge.github.io/gpui-component/