1. 项目定位与用途
GPUI Component 是一个基于 GPUI 框架的 Rust 跨平台桌面 UI 组件库,由 Longbridge 开发并用于其 Longbridge Pro 等商业产品。它提供一套完整的预制 UI 组件,使开发者能够高效构建现代化、原生体验的桌面应用程序,覆盖从基础控件到高级编辑器和图表等广泛需求,显著加速开发周期并保证应用一致性。项目遵循 Apache-2.0 许可证,社区活跃,文档齐全。
GPUI Component 是 Longbridge 开发的基于 GPUI 框架的 Rust 跨平台桌面 UI 组件库,提供 60+ 原生风格组件、主题定制、虚拟列表、代码编辑器(LSP)等特性。本文档介绍项目定位、安装方法、使用示例及适用场景,帮助开发者快速构建高性能桌面应用。
GPUI Component 是基于 GPUI 框架的 Rust 跨平台桌面 UI 组件库,提供 60+ 原生风格组件、主题定制、高性能虚拟列表与代码编辑器,旨在简化复杂桌面应用的开发流程。
GPUI Component 是一个基于 GPUI 框架的 Rust 跨平台桌面 UI 组件库,由 Longbridge 开发并用于其 Longbridge Pro 等商业产品。它提供一套完整的预制 UI 组件,使开发者能够高效构建现代化、原生体验的桌面应用程序,覆盖从基础控件到高级编辑器和图表等广泛需求,显著加速开发周期并保证应用一致性。项目遵循 Apache-2.0 许可证,社区活跃,文档齐全。
在 GPUI 框架基础上,桌面应用开发常面临 UI 组件缺失、需自行实现复杂控件的问题。GPUI Component 通过提供 60+ 开箱即用的组件,填补了生态空白,同时引入主题系统、布局管理和高性能渲染机制,解决了应用一致性、可定制性及大数据量下的性能瓶颈。此外,其虚拟化列表与表格确保平滑渲染大量数据,LSP 集成编辑器提供专业级代码辅助,让开发者能专注于核心功能而非 UI 基础设施。
该组件库特别适合构建跨平台桌面应用,包括但不限于:数据监控与分析工具(需虚拟化表格/列表实时展示)、代码编辑器与 IDE(集成 LSP 提供诊断、补全)、文档处理应用(Markdown/HTML 渲染)、金融或交易终端(复杂 Dock 布局与图表),以及任何需要高度定制主题和尺寸的现代化界面。此外,教育软件、科研工具等需要富文本渲染的场景也能受益。Longbridge Pro 即为其典型成功案例。
根据仓库 README 与 Cargo.toml,安装步骤如下:首先在项目 Cargo.toml 的 [dependencies] 中添加 gpui = "0.2.2" 和 gpui-component = "0.5.1";若需使用图标组件,还需添加 gpui-component-assets = "0.5.1" 依赖,并在应用初始化时调用 gpui_component::init(cx) 注册资产源。具体版本请以 crates.io 或仓库发布为准。注意,图标资源默认不包含在组件库中,需通过资产 crate 提供或自定义。
基本使用流程为:在代码中引入 gpui 和 gpui_component 模块,调用 gpui_component::init(cx) 初始化;然后通过组件构建器模式创建 UI 元素,例如 Button::new("ok").primary().label("Let's Go!").on_click(|_, _, _| println!("Clicked!"))。完整示例见 README 中的 HelloWorld 实现。此外,仓库提供多种运行方式:桌面画廊执行 cargo run(在 crates/story 目录);特定功能示例执行 cargo run --example editor(编辑器)、cargo run --example dock(布局)等;独立示例执行 cargo run -p system_monitor 等;Web 画廊需进入 crates/story-web 目录,先执行 make install 安装依赖,再构建运行。
项目采用 Rust 工作空间组织,核心组件 (crates/ui) 与资产 (crates/assets) 分离以优化体积;提供桌面 (crates/story) 与 Web (crates/story-web) 双端画廊,覆盖主要使用场景。组件设计为无状态 RenderOnce 模式,支持主题定制和多尺寸切换。内置高性能虚拟列表、Tree Sitter 语法高亮、LSP 集成编辑器,以及 Markdown/HTML 渲染引擎。文档系统基于 VitePress,集成版本信息与 API 链接,便于开发者查阅。
GPUI Component 是基于 GPUI 框架的 Rust 跨平台桌面 UI 组件库,提供 60+ 原生风格组件、主题系统、高性能虚拟列表与集成 LSP 的代码编辑器,用于简化桌面应用开发。
在 Cargo.toml 中添加依赖:gpui = "0.2.2" 和 gpui-component = "0.5.1";如需图标支持,还需添加 gpui-component-assets 依赖,并在应用初始化时调用 gpui_component::init(cx) 注册资产源。
运行桌面画廊:在 crates/story 目录执行 cargo run;运行特定功能示例:cargo run --example editor(编辑器)、cargo run --example dock(布局)等;运行独立示例:cargo run -p system_monitor 等;Web 画廊需进入 crates/story-web,执行 make install 后构建运行。
是的,项目提供 crates/story-web 模块,支持通过 WASM 构建画廊应用,可在浏览器中运行演示,但组件库本身主要面向桌面环境。
组件库内置 Theme 和 ThemeColor 系统,支持多主题切换和基于变量的配置;同时提供 xs、sm、md、lg 多种尺寸规格,可通过组件构建器方法(如 .size(...))进行调整。