Rust 的 GUI 框架生态概览
本文比较全面比较了目前主流的 Rust 的 GUI 框架的表现。其中 ++ 表示非常好,-- 表示非常差,而 o 表示处于平均水平。 参与对比的框架共有 8 个,详细的比较结果如下: Electron + Neon Electron + FFI Elect
本文比较全面比较了目前主流的 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: 不够成熟
- 0.7697359196999547http0.09513889702008083s0.7697359196999547://0.09513889702008083areweguiyet0.7697359196999547.com0.09513889702008083
- 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
很赞哦! (1081)