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 框架的投票
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
聊聊图数据库和图数据库的小知识
图数据库 - 维基百科:在计算机科学中,图数据库(英语:graph database,GDB)是一个使用图结构进行语义查询的数据库,它使用节点、边和属性来表示和存储数据。该系统的关键概念是图,它直接将存储中的数据项,与数据节点和节点间表示关系的边的集合相关联。这些关系允许直接将存储区中的数据链接在一起,并且在许多情况下,可以通过一个操作进行检索。图数据库将数据之间的关系作为优先级。查询图数据库中的关系很快,因为它们永久存储在数据库本身中。可以使用图数据库直观地显示关系,使其对于高度互连的数据非常有用。 图数据库是一种非关系型数据库,以解决现有关系数据库的局限性。图模型明确地列出了数据节点之间的依赖关系,而关系模型和其他 NoSQL 数据库模型则通过隐式连接来链接数据。图数据库从设计上,就是可以简单快速地检索难以在关系系统中建模的复杂层次结构的。图数据库与 20 世纪 70 年代的网络模型数据库相似,它们都表示一般的图,但是网络模型数据库在较低的抽象层次上运行,并且不能轻松遍历一系列边。 图数据库的底层存储机制可能各有不同。有些依赖于关系引擎并将图数据“存储”到表中(虽然表是一个逻辑元素...
- 下一篇
刚哥谈架构 (二) 我眼中的架构师
之前在公司,有小伙伴在向别人介绍我的时候,经常会有人这么说:“刚哥是我们的architcture”,如果来人是老外,心中一定是一惊,心中暗叹,“这位匪首看上去貌不惊人,难道已经做到了架构和本人天人合一和最高境界了?” 回头,我不免又要唠叨两句,“同学们,没文化,很可怕,我是架构师 architect,不是架构 architcture” 就像我上次跟大家聊的一样,人是架构要解决的核心问题之一,那么说“人暨架构”,似乎也是有些道理。但是你要是硬说架构师就是架构,恐怕你是对架构师有什么误解。 从企业的角度来看,会定义不同的架构师的角色,像什么系统架构师,解决方案架构师,软件架构师等等。我们要谈论的是软件架构师这个角色。其实很多的软件企业和团队,都没有定义架构师这个角色。在我早期参与的软件开发团队中,主要的角色无非是产品,开发,测试和管理角色。后来的敏捷开发就更为简单的分成三个角色Scrum Master, Product Owner, Dev。在这样环境中,并不是说没有架构师,也不是说不需要架构设计,而是说,架构设计的工作被团队经理,开发等其它的角色所承担。 “一千个人眼中就有一千个哈姆雷特...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- MySQL8.0.19开启GTID主从同步CentOS8
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS7设置SWAP分区,小内存服务器的救世主