GPUI Component:60+ 开箱即用的 Rust 桌面 UI 组件库
用 Rust + GPUI 做桌面应用,最头疼的是按钮、表格、弹窗都得自己写。GPUI Component 是一个开箱即用的 Rust 桌面 UI 组件库,已提供 60+ 跨平台组件,采用 Apache-2.0,支持浅色/深色主题。本文讲讲它解决了什么、怎么用。
场景:如果你最近关注 Rust 桌面开发,应该听过 GPUI——Zed 背后的 UI 框架。但真正让很多 Rust 开发者头疼的是:GPUI 有了,组件怎么办?按钮自己写、输入框自己写、表格自己写……当年前端用 Vue/React + 组件库就能快速开发,而 Rust 桌面开发长期以来缺的正是这样一套成熟、开箱即用的 UI 组件库。
一句话结论
GPUI Component 是一个基于 GPUI 的 Rust 桌面应用 UI 组件库,已提供 60+ 跨平台组件(Apache-2.0),把 Button、Table、Dialog、Chart 等常见桌面 UI 提前备好,让你做桌面应用不必从零写组件。它面向桌面应用而非 Web,是补齐 Rust 桌面 UI 生态的重要一环。
它解决什么
- Rust 适合做高性能应用/桌面软件/开发者工具,但 UI 生态不如 Web 成熟
- 没有组件库时,按钮、表格、弹窗都要自己实现
- 这个项目把常见桌面 UI 组件"开箱即用"地准备好
组件覆盖(60+)
- 基础:Button、Input、Checkbox、Icon、Tag、Tooltip、Switch、Rating…
- 表单:Select、DatePicker、ColorPicker、Editor、Form…
- 布局:Dialog、Sidebar、Popover、Resizable、StatusBar…
- 高级:Table、Chart、Menu、Tree、Tabs、VirtualList…
做一个完整桌面应用,常用 UI 基本不用从零开始。
怎么写一个按钮
use gpui::*;
use gpui_component::{button::*, *};
Button::new("ok")
.primary()
.label("Let's Go!")
.on_click(|_, _, _| println!("Clicked!"))
API 和 Web 组件库类似,前端背景的开发者很容易上手。
不只是"把 Web 组件搬到 Rust"
它面向桌面应用:受 macOS/Windows 原生控件启发,结合 shadcn/ui 的现代设计,定位是 Native Desktop UI + Modern Design + Rust + GPUI。且内置主题系统,支持浅色/深色/自定义,解决桌面软件主题维护难题。
小结
如果你在 Rust + GPUI 上做桌面应用,又不想每个组件自己造轮子,GPUI Component 是目前很值得关注的开源组件库。它把"Rust 写桌面 UI"从"从零搭组件"变成"开箱即用",配合官方文档的 Hello World 和组件列表,上手路径清晰。适合 Rust 桌面开发者,以及想在 Zed/GPUI 生态里做应用的团队。