V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
poogo
V2EX  ›  分享创造

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

  •  5
     
  •   poogo · 300 天前 · 3021 次点击
    这是一个创建于 300 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    Ribir 是什么

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

    Ribir 的设计架构如下:

    Ribir Architecture

    构建非侵入式的 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上关注我们的项目,并提供反馈信息。

    2 条回复    2024-02-09 00:57:42 +08:00
    steveay
        1
    steveay  
       299 天前
    看着实例代码像是 android 的 compose 的写法
    wdhwg001
        2
    wdhwg001  
       299 天前 via iPhone
    感谢开源,不过我其实更期待一个无宏的声明式 UI 的方案的,有宏的时候体验总是会有一种在摆弄魔法而不是 rust 的感觉。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1123 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 22:53 · PVG 06:53 · LAX 14:53 · JFK 17:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.