
(依赖 Yororen UI 开发的 Minecraft 服务器网络加速工具,包含仪表盘、实时统计、自定义窗口边框、数据表格和虚拟化列表,在 Windows 上内存占用仅~20M)
最近在用 Rust 写几个桌面小工具,结果卡在 GUI 库选型上好一阵,最后怎么决定基于 gpui 自建组件库。
为什么不用 gpui-component?
选型过程中,我确实看到了 gpui-component,长桥团队维护的,1w+ Stars,看起来很"官方"的方案,但仔细看了代码和文档后,有几个点让我犹豫:
- 动画太基础 - 在代码库中搜索
animation,只能找到一个cubic_bezier函数。 - 国际化有点简陋 - 用
rust-i18n宏实现,不能运行时热加载翻译文件,不支持本地化日期/货币格式,也没有 RTL 支持。 - 主题 API 不太顺手 - 扁平化设计(
primary_hover),而不是语义化的(action.primary.hover_bg),扩展起来有点别扭。 - 依赖太多 - 大量依赖(含 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?
Yororen UI 可能会更适合你,如果:
- 想要开箱即用的动画效果(gpui-component 几乎没动画)
- 需要完整的国际化(运行时切换语言、RTL 支持)
- 喜欢现代化的主题 API(语义化命名而不是扁平化)
- 希望依赖轻量、编译快
- 想做精致的小工具而非大型 IDE 类产品
- 愿意接受早期版本,一起参与打磨
如果:
- 需要内置图表、代码编辑器、Web等组件
- 需要 Tree Sitter 语法高亮
- 要做复杂的多面板 IDE(Dock 布局)
- 追求生产级稳定性(毕竟 1w+ Stars嘛,久经考验)
- 需要丰富的社区资源和现成方案
那还是选 gpui-component 吧~
试试看?
Yororen UI 目前 v0.1.0,Apache 2.0 协议开源:
🔗 GitHub: https://github.com/MeowLynxSea/yororen-ui
如果你也在用 gpui 做项目,或者在 Rust GUI 选型上纠结,欢迎试用、提 Issue、PR!特别是:
- 有动画/交互设计经验的朋友
- 需要国际化支持的多语言应用开发者
目前项目刚刚起步,很多地方还不完善,请多包涵如果各位有兴趣,欢迎和我一起建设
Ext Link: https://github.com/MeowLynxSea/yororen-ui
评论区
写评论还没有评论