Relm4:用 Rust 轻松构建跨平台应用

Relm4 makes developing beautiful cross-platform applications idiomatic

Relm4 让开发者能用纯 Rust 写出优雅且跨平台的图形界面应用。它采用 Elm 编程模型,配合 Rust 强大的类型系统,让代码既简洁又健壮。基于 GTK 构建,Relm4 原生支持 Windows、MacOS 和 Linux,无需额外运行时即可在裸机上运行。内置异步任务支持,模块化设计让组件可复用,文档完善且易上手。无论是追求开发效率还是代码可维护性,Relm4 都提供了理想的解决方案。

使用声明式语法,你可以轻松用纯 Rust 编写用户界面。
  1. chadcmulligan

    挺有意思的——如果你追求跨平台,Flutter/Dart 似乎是更全面的方案(支持移动端、桌面端和 Web),或者 Delphi/Lazarus(不含 Web)。

  2. slacknatcher12

    看了文档,我发现其中很多内容和我自己用 Haskell 和 gi-gtk4 实现的方案非常相似。我想任何读过 https://bichanna.github.io/posts/tea-time/ 的人都会产生同样的想法。这基本上可以归纳为:

    1. 使用原生组件系统,比如 GTK(我也评估过 Qt)

    2. 将组件封装成一种数据类型,该类型知道当 props/model 变化时如何更新组件

    3. 定义一个 dispatch 闭包并传递给组件,用于接收消息。组件上的操作应使用它,而不是直接修改引用

    4. 该 dispatch 闭包是组件感知的,它会调用所有组件的 update 函数

    对于长时间运行的计算有一些额外的复杂性,但这个模型是一个很好的基础。祝 relm 团队一切顺利,我在用 Rust 编程时很可能会使用它。

  3. WD-42

    我上一个项目用的是纯 gtk-rs,Rust 和 gobject 系统之间确实存在一些摩擦。我想下一个项目会试试 relm4。看来如果需要的话,随时可以回退到 gtk-rs。

同日更多故事

2026-08-31