AI 探索站
首页GitHub 热门GPUI Component:60+ 开箱即用的 Rust 桌面 UI 组件库
GitHub 热门

GPUI Component:60+ 开箱即用的 Rust 桌面 UI 组件库

2026 年 9 月 7 日约 4 分钟阅读

用 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 生态里做应用的团队。

?

常见问题 FAQ

GPUI Component 是给谁用的?
给用 Rust + GPUI 开发桌面应用的开发者。GPUI 是 Zed 编辑器背后的 UI 框架,但缺组件库;这个项目把常见的桌面 UI 组件(按钮/表格/弹窗等)准备齐全,避免自己从零写。
它和 Web 的 React/Vue 组件库是一回事吗?
不是。它面向桌面应用(Desktop Application),不是 Web UI 框架。风格受 macOS/Windows 原生控件启发,结合 shadcn/ui 的现代设计,定位是 Native Desktop UI + Rust + GPUI。
有多少组件? 够做完整应用吗?
官方已列 60+ 组件,含基础(Button/Input/Checkbox)、表单(Select/DatePicker)、布局(Dialog/Sidebar)、高级(Table/Chart/Menu/Tree)等,做一个完整桌面应用的常用 UI 基本不用从零写。
用起来难不难? 上手快吗?
对会 Rust 的开发者不难,API 和 Web 组件库类似。比如按钮:Button::new(\"ok\").primary().label(\"Let's Go!\"), 官方有 Hello World 示例。
开源协议和主题支持?
Apache-2.0 协议。内置主题系统,支持浅色/深色/自定义主题,解决桌面软件常见的主题维护难题。

延伸阅读