找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1651

积分

0

好友

217

主题
发表于 20 小时前 | 查看: 3| 回复: 0

基于Yororen UI开发的Minecraft服务器加速工具界面
(依赖 Yororen UI 开发的 Minecraft 服务器网络加速工具,包含仪表盘、实时统计、自定义窗口边框、数据表格和虚拟化列表,在 Windows 上内存占用仅~20M)

最近在尝试用 Rust 写几个桌面小工具,但在 GUI 库的选型上却卡壳了很久。最终,我决定基于 Zed 的 gpui 框架,从零开始打造一个自己的组件库。

为什么没有选择现有的 gpui-component?

在选型过程中,我当然也考察了 gpui-component —— 这个由长桥团队维护、拥有 1w+ Stars 的方案。它看起来很“官方”,但深入研究其代码和文档后,我发现有几个点并不符合我的预期:

  1. 动画功能薄弱 - 在代码库中搜索 animation,只能找到一个 cubic_bezier 函数,远谈不上一个完整的动画系统。
  2. 国际化支持有限 - 它通过 rust-i18n 宏实现,不支持运行时热加载翻译文件,也缺乏对本地化日期/货币格式以及 RTL(从右至左)布局的支持。
  3. 主题 API 设计不够顺手 - 采用了扁平化的设计(例如 primary_hover),而非更现代、更易扩展的语义化设计(例如 action.primary.hover_bg)。
  4. 依赖较多 - 引入了包括 Tree Sitter 在内的大量依赖,导致编译时间较长,最终二进制文件体积也偏大。

平心而论,gpui-component 功能确实丰富,包含了图表、代码编辑器、Dock 布局等高级组件。但对于我这种只想做精致小工具的开发者来说,它显得有些笨重,而且在关键的动画国际化体验上又有所欠缺。

从零搭建:Yororen UI 的诞生

既然现有的方案都不够完美,我决定基于 gpui 框架自己动手,目标是打造一个 “开箱即用的轻量精致体验” 的组件库。

目前已实现的核心特性

  • 50+ 常用组件 - 覆盖了按钮、输入框、徽章、工具提示、树形控件等日常开发所需的大部分基础组件。
  • 完整的动画系统 - 内置 60+ 种缓动函数(如 elastic、bounce),提供淡入淡出、滑动、缩放等预设动画,并支持顺序、并行、交错等动画编排。
  • 原生的国际化支持 - 不仅支持多语言,还能在运行时动态加载和切换翻译文件,完整支持 LTR/RTL 布局以及数字、日期的本地化格式化。
  • 智能主题系统 - 采用 GlobalTheme + ActiveTheme 的双层设计,可以轻松实现主题切换,并自动跟随系统的明暗模式。
  • 20+ 内置 SVG 图标 - 通过 rust-embed 静态嵌入,无需额外文件依赖。
  • 高级组件 - 如 TitleBar(用于创建自定义窗口标题栏)和 VirtualList(用于高性能渲染超长列表)。

得益于精心控制的依赖数量,整个库编译速度快,最终的二进制文件也非常精简。

功能演示截图

计数器组件演示
最基础的计数器组件演示

Todo应用演示国际化与交互组件
展示列表、输入框、按钮、模态框等组件的交互和国际化功能

文件浏览器演示树形控件与虚拟列表
展示树形控件、虚拟列表在文件浏览器场景下处理大量数据的能力

Toast通知系统演示
功能丰富的吐司(Toast)消息及通知中心系统

如何选择:Yororen UI 还是 gpui-component?

这是一个很实际的问题。简单来说,如果你的需求场景符合以下几点,那么 Yororen UI 可能更适合你

  • 希望组件拥有开箱即用的精致动画效果(gpui-component 在这方面几乎为零)。
  • 需要完整、灵活的国际化支持(包括运行时切换语言和 RTL 支持)。
  • 更喜欢现代化、语义化的主题 API 设计。
  • 追求依赖轻量、编译速度快、产物精简。
  • 主要目标是开发精致的桌面小工具,而非大型 IDE 或复杂桌面软件。
  • 愿意尝试早期项目,并一起参与打磨和改进。

反之,如果你需要

  • 内置的图表、代码编辑器、Web视图等重型组件。
  • Tree Sitter 提供的强大语法高亮能力。
  • 构建类似 VSCode 那样拥有复杂多面板布局的 IDE 应用。
  • 追求经过大量项目验证的生产级稳定性(毕竟 gpui-component 有 1w+ Stars)。
  • 丰富的社区资源和现成的解决方案。

那么,选择 gpui-component 依然是更稳妥的决定。

欢迎试用与共建

Yororen UI 目前处于 v0.1.0 阶段,采用 Apache 2.0 协议开源。

🔗 GitHub 仓库https://github.com/MeowLynxSea/yororen-ui

如果你也在使用 gpui 框架,或者正在为 Rust GUI 选型而纠结,非常欢迎你来试用、提交 Issue 或 Pull Request!我们特别期待:

  • 拥有动画或交互设计经验的朋友,一起来打磨组件细节。
  • 正在开发多语言应用、需要强大国际化支持的开发者。

作为一个刚刚起步的 开源实战 项目,Yororen UI 还有很多不完善的地方。如果你的项目正好需要这样一个轻量、精致、现代化的 Rust GUI 组件库,不妨给它一个机会。也欢迎在 云栈社区 分享你的使用体验或想法,让我们一起把它建设得更好。




上一篇:Qwen3.5-397B实测:用17B的算力,跑出400B的智商
下一篇:Flutter与React Native深度对比:2024年跨平台移动开发选型指南
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-2-25 21:39 , Processed in 0.354652 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表