本文比较全面比较了目前主流的 Rust 的 GUI 框架的表现。其中 ++ 表示非常好,-- 表示非常差,而 o 表示处于平均水平。
参与对比的框架共有 8 个,详细的比较结果如下:
Electron + Neon
Electron + FFI
Electron + NodeJS Cpp Addon
Rust Program + Qt static
Rust program + Qt dynamic
Cpp program + Rust lib static + Qt static
Cpp program + Rust lib static + Qt dynamic
Gtk
易于构建
++
++
--
o
构建性能
++
++
++
--
++
--
++
o
打包体积
-
-
-
++
++
o
易于部署
++
++
++
o
o
-
Rust互操作性
o
-
++
开发速度
++
-
--
--
-
内存占用
o
o
o
o
o
o
o
CPU占用
-
-
-
++
++
++
++
++
安全性
o
o
o
外观
++
++
++
o
响应式UI
++
++
++
o
o
o
o
-
框架稳定性
--
--
--
--
-
平台支持
++
++
++
++
内建功能
++
++
++
++
++
++
++
o
第三方组件
++
++
++
-
调试
++
++
++
o
o
o
o
o
测试
++
++
++
o
o
o
o
o
社区
++
++
++
-
许可证
++
++
++
o
o
o
o
++
未参与测试的框架
以下框架没有在此次测试的范围之内,原因是我们觉得这些框架还没有足够成熟:
- Flutter desktop & flutter-rs: 不够成熟
- Relm: Gtk 衍生,外观看着不错
- Godot: 老旧笨拙
- Unity: 老旧笨拙
- Azul: 不够成熟
- Conrod: 不够成熟
- Druid: 不够成熟
- https://areweguiyet.com
- libui: 不够成熟
- Platform specific libraries: 不提供跨平台支持
- ImGUI: 不够成熟
- Sciter: 收费项目
- Web broswer communicating with a Rust local server: 老旧笨拙, 不安全? (DNS 重新绑定攻击) 以及不支持原生功能,如任务栏图标
最有希望的似乎是 Flutter。
排名
研究结果排名如下, 标准就是不让狗屎上榜:
- Electron + Neon
- Rust program + Qt dynamic 用于开发,Rust Program + Qt static 用于部署
- Gtk, Cpp program + Rust lib static + Qt static, Cpp program + Rust lib static + Qt dynamic, Electron + NodeJS Cpp Addon
- Electron + FFI
欢迎关注公众号“红薯胡说” 参与 Rust GUI 框架的投票