2026/02/20
感谢各位佬的回应,今天迁移到了 gpui-ce,并且在gpt的帮助下尝试着加了对应的 Skills,但是感觉写的挺一般 ^-^
如果有擅长这个的佬,欢迎联系我或者直接发pr
省流:^-^ GitHub: GitHub - MeowLynxSea/yororen-ui: Reusable UI components and widgets built on top of gpui.
crates.io: crates.io: Rust Package Registry

(我自己用 Yororen UI 做的 Minecraft 服务器网络加速工具,包含仪表盘、实时统计、自定义窗口边框、数据表格和虚拟化列表,在 Windows 上内存占用仅~20M)
最近在用 Rust 写几个桌面小工具,结果卡在 GUI 库选型上好一阵。来分享下我的纠结过程,以及最后怎么决定基于 gpui 自建组件库的。
为什么选 gpui?先吐槽下 Rust GUI 生态
其实一开始我也在看其他方案,但查着查着就发现各种劝退点:
egui - 确实轻量,写起来很直观。但界面"非原生",感觉差点意思。
Iced - 架构很优雅,但在复杂交互、动画体系和高质量文本场景下扩展成本偏高,更适合通用表单类应用。
Tauri - Web 技术生态丰富,但启动慢,占用相对较高,用 Rust 写个壳子包个 Web 页面总觉得哪里不对。UI 体验被 WebView/前端栈绑住(样式一致性、动画与高频交互等等)
GTK-rs / Qt - GTK 的 C 依赖和版本地狱让人头大,Qt 非商业授权麻烦,而且都不是"纯 Rust"方案。
gpui 是 Zed 编辑器团队开源的,我主要是被这几点吸引:
- 自绘 GPU 渲染 —— 不依赖 WebView 或浏览器内核,完全由 Rust + GPU 控制渲染与事件系统
- 高性能 —— 复杂编辑器级应用也能做到极快启动和较低内存占用
- 响应式架构 —— 状态驱动视图更新,组件思维清晰,类似 React 的开发体验
- 扎实的文本渲染能力 —— 作为编辑器底层框架,复杂文本场景已经在实践中验证
但 gpui 也有坑:太底层了。直接用的话要自己处理主题切换、动画曲线、图标资源… 对于想快速做工具的开发者门槛太高。
为什么不用 gpui-component?
然后我发现了 gpui-component,长桥团队维护的,1w+ Stars,看起来很"官方"的方案,但仔细看了代码和文档后,有几个点让我犹豫:
- 动画太基础 - 在代码库中搜索
animation,只能找到一个 cubic_bezier 函数。
- 国际化有点简陋 - 用
rust-i18n 宏实现,不能运行时热加载翻译文件,不支持本地化日期/货币格式,也没有 RTL 支持。
- 主题 API 不太顺手 - 扁平化设计(
primary_hover),而不是语义化的(action.primary.hover_bg),扩展起来有点别扭。
- 依赖太多 - 30+ 个依赖(含 Tree Sitter 等),编译时间长,二进制膨胀。
gpui-component 功能确实丰富(图表、代码编辑器、Dock 布局),但对于想做精致小工具的我来说,反而显得笨重,而且关键体验(动画、i18n)不到位。
于是,我写了 Yororen UI
既然现有方案都不完美,决定基于 gpui 自建一套,主打 “开箱即用的轻量精致体验”:
目前有什么?
- 50+ 组件 - 按钮、输入框、徽章、工具提示、树形控件…日常够用
- 完整的动画系统 - 60+ 缓动函数(elastic、bounce…)、预设动画(fade、slide、scale)、编排器(顺序/并行/交错)
- 原生国际化 - 国际化支持 + 运行时加载/切换翻译文件 + LTR/RTL 支持 + 数字/日期本地化
- 智能主题 - GlobalTheme + ActiveTheme 双层设计,自动跟随系统明暗切换
- 20+ SVG 图标 - 通过 rust-embed 静态嵌入
- 高级 Widgets - TitleBar(自定义窗口标题栏)、VirtualList(虚拟化列表)
依赖少,编译快,二进制精简。
Demo 展示




选 Yororen UI 还是 gpui-component?
虽然 gpui-component 确实很好用,但是还是要推广一下自己的项目的嘛
Yororen UI 更适合你,如果:
- 想要开箱即用的动画效果(gpui-component 几乎没动画)
- 需要完整的国际化(运行时切换语言、RTL 支持)
- 喜欢现代化的主题 API(语义化命名而不是扁平化)
- 希望依赖轻量、编译快
- 想做精致的小工具而非大型 IDE 类产品
- 愿意接受早期版本,一起参与打磨
如果:
- 需要内置图表、代码编辑器、Web等组件
- 需要 Tree Sitter 语法高亮
- 要做复杂的多面板 IDE(Dock 布局)
- 追求生产级稳定性(毕竟 1w+ Stars嘛,久经考验)
- 需要丰富的社区资源和现成方案
那还是选 gpui-component 吧~
试试看?
Yororen UI 目前 v0.2.0,Apache 2.0 协议开源:
^-^ GitHub: GitHub - MeowLynxSea/yororen-ui: Reusable UI components and widgets built on top of gpui.
crates.io: crates.io: Rust Package Registry
如果你也在用 gpui 做项目,或者在 Rust GUI 选型上纠结,欢迎试用、提 Issue、PR!特别是:
- 有动画/交互设计经验的朋友
- 需要国际化支持的多语言应用开发者
目前项目刚刚起步,很多地方还不完善,请多包涵~如果各位有兴趣,欢迎和我一起建设~