Rust GUI components for building fantastic cross-platform desktop application by using GPUI.

★ 20,185⑂ 1,234
RustCreated 2024-06-13gpui-kit.com
20,185
stars
+1,238+1,281+3,972
1,234
forks
–
watchers
–
prs
–
issues
–
releases
–
discussions

README

GPUI Kit

English | 简体中文

  

使用 Rust 和 GPUI 构建出色、高性能的桌面应用。

GPUI Kit 是一个综合性的 Rust 桌面应用开发框架。它将生产级 UI
系统、应用级数据与布局能力、编辑能力,以及可复用的行为、状态和基础设施整合在一起,
并让交付后的应用可以被 JavaScript 扩展。GPUI Kit 提供 75+ 个有完整文档的组件与原语,
并具备 WebAssembly、AccessKit 无障碍、UI 集成测试及可选的 JavaScript 扩展运行时。

文档:

text
gpui-kit             应用唯一需要依赖的 crate
├── gpui-base        无样式的行为、状态与基础设施
└── gpui-component   GPUI Component:完整的带样式 UI 系统


gpui-kit 会固定配套的 GPUI 版本并导出 GPUI、base、component 和 assets,Rust 应用只需声明这一个依赖。JavaScript 扩展宿主另行依赖 gpui-shell;它默认开启的 components feature 提供带样式的组件目录。

 特性

- 75+ 组件与原语:覆盖表单、导航、浮层、数据展示、编辑、反馈和布局等场景,提供成熟交互与高效默认值。
- 生产就绪:从第一天起用于构建 Longbridge Pro,并在公开发布的商业桌面应用中持续打磨。
- WebAssembly:应用与组件示例可通过 wasm32-unknown-unknown 在 Web 中运行。
- 无障碍:交互层内置 AccessKit role、name、state、relationship 与 action,并有对应测试覆盖。
- UI 集成测试:在 headless window 中渲染真实组件,驱动鼠标与键盘输入,并验证状态、Focus、布局和无障碍信息。
- 原生体验:现代控件设计灵感来自 macOS 与 Windows,并提供语义化主题和多种尺寸。
- 120 FPS:GPU 加速界面,在高负载下依然保持流畅。
- 数据表格:虚拟滚动、固定列、列宽调整、排序与单元格选择,可承载数十万行数据。
- 虚拟列表:只渲染可见区域,并支持不同尺寸的列表项。
- 代码编辑器:20 万行规模下仍保持稳定,集成 Tree-sitter 高亮与 LSP 诊断、补全和悬浮提示。
- Dock 布局:可调整面板、可拖拽标签、嵌套分割、边缘停靠,并可序列化保存。
- 丰富内容:原生 Markdown 与 HTML 渲染、语法高亮和内置图表。
- 设计自由:使用完整视觉系统,或基于 gpui-base 的行为与基础设施构建自己的系统。
- JavaScript 扩展:gpui-shell 让已发布的 Rust 宿主以脚本方式加载面板与业务逻辑,每项能力都需显式授予。
- 跨平台:通过一份 Rust 代码交付 macOS、Windows 和 Linux。

 框架架构

 三层架构,一个生态

使用 gpui-component,让整个应用保持统一、完整的视觉与交互风格;当产品需要创建并拥有自己的设计系统时,使用 gpui-base;当应用需要在交付后仍可被 JavaScript 扩展时,使用 gpui-shell。

| gpui-component     | gpui-base            | gpui-shell                 |
| ------------------------ | -------------------------- | -------------------------------- |
| 完整且带样式的组件       | 无预设样式的行为与基础设施 | 由 Rust 托管的 JavaScript 运行时 |
| 开箱即用,并支持主题定制 | 完全掌控结构与视觉设计     | 能力逐项授予                     |
| 适合直接构建应用         | 适合构建设计系统           | 适合插件与脚本化应用             |

text
                             APPLICATION
                                  │
              ┌───────────────────┼───────────────────┐
              │                   │                   │
              ▼                   ▼                   ▼
    ┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐
    │  gpui-component  │ │ Your Design      │ │    gpui-shell    │
    │    Styled UI     │ │ System           │ │  JS extensions   │
    └────────┬─────────┘ └────────┬─────────┘ └────────┬─────────┘
             │                    │                    │
             └────────────────────┼────────────────────┘
                                  ▼
                        ┌──────────────────┐
                        │    gpui-base     │
                        │ Behavior · State │
                        │ Infrastructure   │
                        └────────┬─────────┘
                                 ▼
                               GPUI


 行为属于基础层,呈现属于应用。

如果希望使用精致、开箱即用且风格统一的控件,请选择 gpui-component。如果应用需要拥有组件源码、布局、样式和动效,同时复用复杂且可靠的交互行为,请直接构建于 gpui-base。如果希望贡献者无需 fork、也无需发新版本就能扩展产品,请加入 gpui-shell。

这种分层方式与 shadcn 生态的灵活性来源一致:

| GPUI Kit 生态                        | Web 生态            

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON