分享一个我们自己开发的 Rust 跨平台 GUI 框架

26次阅读

共计 884 个字符,预计需要花费 3 分钟才能阅读完成。

我们开发的 Rust GUI 框架 Ribir 开源了,感兴趣的朋友可以来看看。https://github.com/RibirX/Ribir

相关文档:https://ribir.org/zh/docs/introduction/

Ribir 是什么

Ribir 是基于 Rust 开发的跨平台 GUI 框架,它的核心设计理念是应用程序 UI 的构建对数据结构逻辑是 非侵入式 的。

Ribir 的设计架构如下:

分享一个我们自己开发的 Rust 跨平台 GUI 框架

构建非侵入式的 GUI 应用

应用程序的数据结构是核心,不应该和 UI 逻辑耦合,UI 只是对数据结构的表达。使用 Ribir 进行应用程序开发,可以先设计应用程序的数据结构,再根据数据结构提供的 API 对应用程序的 UI 进行描述。

  • 没有其他状态
  • 没有额外的通知机制
  • 没有任何需要继承的基类
  • 没有其他限制

为什么选择 Rust

我们的目标是构建可本地编译的高性能跨平台框架,于是我们有了两个选择:C++ 和 Rust。

最初我们倾向于 C++,因为 C++ 有更成熟的生态系统,而且我们有多年基于 C++ 开发大型工具的经验。

但最终我们选择了 Rust,两个核心原因:

  • Rust Trait:Rust 的 Trait 设计非常符合我们 非侵入式 设计的理念
  • Procedure macro:我们使用 Rust 的过程宏进行 DSL 实现而无需借助额外的工具。它与 Rust 的工具链结合使用时,提供了开箱即用的解决方案,增强了整体的开发体验。

Ribir 现状

目前 v0.1 版本完成核心框架设计,我们可以使用它构建示例应用,并且开发了一些应用程序,我们对它的使用体验感到满意。

但 Ribir 仍然处在非常早期的阶段:

  • 我们只是在有限的环境中测试和使用它,暂时无法应用到生产环境中。
  • 存在一些已知问题,包括内存泄漏和性能问题,仍然需要解决。
  • API 不稳定,可能在下一版本中被废弃。

我们希望有更多人来尝试它并向我们提供反馈,让我们更好地完善它。

下一步计划

接下来我们会重点关注:

  • WebAssembly 支持,构建 Web 应用程序。
  • 稳定核心 API。

反馈

欢迎大家关注我们的项目,我们会不定期发布变更,详细的变更信息可以在 Ribir 变更日志 中找到。

也欢迎大家在 GitHub 上关注我们的项目,并提供反馈信息。

正文完
 0