Rust 的 GUI 框架生态概览
本文比较全面比较了目前主流的 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 框架的投票