开发工具#UI 设计

GPUI Kit:Rust 桌面组件库

GPUI Kit 是基于 GPUI 的 Rust 桌面组件库(rust gpui kit),版本仍为 0.x,README 称有 75 个以上组件。

项目资料

GitHub Ecosystem
仓库地址github.com/longbridge/gpui-kit
许可证
Apache-2.0
主语言
Rust
星标
18,448
核查时间
2026-10-21

以上快照资料以核查当日为准,可能随版本或运营策略变化。

GPUI Kit 示例 example-tig 的深色分栏视图:左侧是提交和改动文件列表,右侧并排显示改动前后的代码

用 Rust 做桌面应用,最先要写的往往是按钮、表格和可拖动的面板。GPUI Kit 是 GitHub 组织 longbridge 发布的 Rust 桌面 UI 组件库,仓库名 gpui-kit,建立在 Zed Industries 开发的 GPUI 之上。README 称它有 75 个以上组件与基础件,还说 Longbridge Pro 从第一天起就用它构建。如果你要找 rust gpui kit 这类组件库,它最值得看的是分层:应用只依赖一个 gpui-kit,默认带上带样式的 gpui-component,关掉默认功能后只保留底层的 gpui-base。

核心功能

GPUI Kit 的 README 列了 15 项特性,这里挑出对选型影响最大的五项。

  • 75 个以上组件:分为表单、导航、浮层、数据展示、编辑、反馈和布局。README 没有逐个列出,项目文档站是 gpui-kit.com。
  • 数据表格与代码编辑器:表格支持虚拟滚动、列宽调整和排序,README 称能承载数十万行。编辑器用 Tree-sitter 高亮,并提供 LSP 诊断和补全,README 称 20 万行下性能稳定。
  • 停靠布局:面板可以调整大小、拖动标签页、嵌套分栏、贴边停靠,整套布局还能序列化。
  • 一套代码,三个桌面系统:README 称同一份 Rust 代码可以发布到 macOS、Windows 和 Linux,应用也能通过 wasm32-unknown-unknown 跑在网页上。
  • 无障碍与界面测试:AccessKit 的角色、状态和动作内建在交互层。UI 集成测试能在无头窗口里模拟鼠标和键盘,检查焦点与布局。

GPUI Kit 示例 example-tig 的统一视图:左侧是提交和改动文件列表,右侧是逐行 diff

README 里唯一的产品截图放在 Showcase 一节,画面是一款商业交易应用,我们没有核实它的复用条款,所以改用仓库 examples/tig 目录里的示例截图。示例程序 example-tig 依赖 gpui-kit,是一个受 tig 启发的桌面 Git 历史浏览器。

crate 结构

GPUI Kit 分为四个 crate,多数应用只直接依赖第一个。

crate作用README 的定位
gpui-kit应用的唯一依赖,重新导出 GPUI、base、component 和资源所有应用
gpui-base只有行为、状态和基础设施,没有样式构建设计系统
gpui-component完整的带样式组件体系,默认开启构建应用
gpui-shell宿主 JavaScript 扩展的运行时,需要单独添加插件与脚本化应用

仓库以前叫 gpui-component。旧地址 github.com/longbridge/gpui-component 会 301 跳转到这里,所以旧链接仍能打开,但这个名字现在只指样式层。主分支的 Cargo.toml 把 GPUI 的 gpui-pre 快照精确锁在 =0.3.9,注释写明任何快照都可能改变 GPUI 的 API。同样用 Rust 和 GPUI 写的 ElyOffice 走的是另一条路,它直接依赖 gpui-pre 快照和自家的组件库,没有用 gpui-kit。

典型使用场景

GPUI Kit 适合三类项目,每一类都能在 README 或示例里找到对应内容。

  • 想在三个桌面系统上发布同一个应用的小团队:一份 Rust 代码加上 README 列出的表单、导航和浮层控件,不必每个控件都从头写。
  • 要做 Git 客户端或日志查看器的开发者:example-tig 就是一个 Git 历史浏览器,README 提到的数据表格、虚拟列表和代码编辑器,对应的也是这类界面。
  • 想自己做设计系统的产品团队:只用 gpui-base,视觉和动效由团队自己决定,这正是 README 为它标注的用途。

快速上手

GPUI Kit 只需要在 Cargo.toml 里加一行依赖,再运行仓库里的 hello_world 示例,就能看到第一个窗口。

[dependencies]
gpui-kit = "0.7"

这是 README 写的版本。crates.io 上的最新版本是 0.8.0,2026-10-19 发布,README 还没有更新。想试 0.8,可以把版本改成 "0.8",但 README 的示例按 0.7 写,我们没有在 0.8 上编译过。

在克隆下来的仓库根目录运行:

cargo run -p hello_world

窗口会显示 Hello, World! 和一个 Let’s Go! 按钮,点击后终端输出 Clicked!。项目用的是 Rust 2024 edition,它从 Rust 1.85.0 起稳定,所以工具链至少要 1.85。README 没有写这一条,是我们从 Cargo.toml 推出来的。图标集要用 gpui_kit::application().with_assets(gpui_kit::assets::Assets) 传给应用。

小结

GPUI Kit 适合想用 Rust 做桌面应用、能接受 GPUI 这套渲染框架,并愿意跟着 0.x 版本升级的团队。GitHub 标注的主语言是 Rust。README 点名的生产应用只有 Longbridge Pro,它说从第一天起就用这套组件构建。需要长期稳定 API 的团队,或者只想要一两个控件的项目,就不太合适。

限制主要来自项目自己的文件。版本停在 0.x,而 Cargo 的约定是 0.y 的变化可能破坏兼容,README 没有写稳定性承诺。README 给的 120 FPS 和 20 万行编辑器等数字,没有写测试方法和硬件。它说支持三个桌面系统,却没有支持矩阵,也没有列 Linux 需要的系统库。CI 配置确实在三个系统上跑测试,main 分支最近一次 CI 在 2026-10-21 通过。

许可证分两部分:代码和示例是 Apache-2.0,文档站的正文按 CC BY 4.0 提供(LICENSE-DOCS.md)。Apache-2.0 是 OSI 认可的开源许可证,CC BY 4.0 是文档用的知识共享协议,不在 OSI 的软件许可证列表里。GitHub 显示 NOASSERTION,我们推测是因为 LICENSE-APACHE 顶部多了一行版权声明、末尾少了附录。去掉缩进和空行后,它的条款部分与 Apache 官方文本一致。

我们读了 README、Cargo.toml、两份许可证、CI 配置和示例源码,没有在本机编译或运行。仓库 2024 年 6 月 13 日创建,截至 2026-10-21 有 18448 颗星。README 还提到一个与 Iced、egui、Qt 6 的对比页,以及兄弟项目 Native Shell,它的 GPUI 桌面后端仍在开发中。这两处我们都没有核对。