KDAB 推出 CXX-Qt ,为 Qt 提供安全的 Rust 语言绑定
专注于 KDE/Qt 的科技公司 KDAB 一直在努力改进 Rust 与 Qt 工具包的集成,近日他们推出了 CXX-Qt ,称该工具可为 Qt 提供安全的 Rust 语言绑定。
Rust 拥有 C/C++ 欠缺的内存安全性,且拥有丰富的库生态系统,可用于(反)序列化、异步、解析不安全输入、线程等,将这些 Rust 库集成到 Qt 应用程序中将为 Qt 带来大量安全优化。
但目前将 Rust 与 Qt 结合的解决方案都存在一些问题,比如仅提供对 C++ API 的直接访问而不是对 Rust 的直接绑定、C++ 和 Rust 之间的调用不安全,又或者没有利用 Rust 强大的多线程保证或特性等等。
而据 KDAB 介绍,其新推出的 CXX-Qt 不是简单地为现有的 C++ API 提供绑定,而是利用了 Qt 强大的面向对象和元对象系统,该库允许在 Rust 中将新的 QObject 子类定义为模块,甚至可以像 QML 甚至 C++ 中的任何其他 QObject 一样被实例化。
CXX-Qt 定义的每一个 QObject 都由两部分组成:
- 一个基于 C++ 的 QObject 实例,存储和公开属性和可调用方法
- 一个实现任何可调用对象、管理内部状态,并处理来自属性或后台线程的更改请求的 Rust 结构
然后 CXX-Qt 使用一个名为 CXX 的库在 Rust 和 C++ 之间进行通信,与普通绑定相比,CXX 在 Rust 和 C++ 之间建立了一座桥梁,它基于两种语言的安全子集。CXX-Qt 通过使用过程宏隐藏了 CXX 桥的详细信息,还提供了一个常见的 Qt 类型库,可以安全地跨过 C++ <-> Rust 桥,此外还为 Rust 后台线程提供了通知和安全更新 Qt 线程上的 Qt 状态的机制。
这种方法的缺点是 CXX-Qt 不提供一对一的绑定,因此,CXX-Qt 需要跨桥暴露和实现每一个特性。
需要注意的是,CXX-Qt 目前不是稳定、可用于生产的版本。目前,现有代码能够执行以下任务:
- 定义属性和可调用对象,将它们暴露在 QObject 上
- 使用常见的 Qt 类型
- 监听属性更改或处理来自后台 Rust 线程的更新请求
未来计划添加以下任务/功能:
- 其他 Qt 基类(如 QAbstractItemModel)
- 稳定宏的 API,改进 Qt 类型的 API
- 定义和发出信号
- 扩展文档,以包含教程和示例
感兴趣的朋友可在其 GitHub 仓库查看进度。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
ALC Beijing 发起人姜宁当选 ASF 董事
Apache 软件基金会(ASF )于本周举行了一年一度的成员会议,会议上以下个人成员组成了新的董事会: Rich Bowen(原董事) Bertrand Delacretaz(连任董事) Christofer Dutz(新任董事) Roy Fielding(连任董事) Sharan Foga(连任董事) Willem Jiang(新任董事) Sam Ruby(连任董事) Roman Shaposhnik(连任董事) Sander Striker (连任董事) ASF 在公告中对去年的董事成员Justin Mclean、Craig Russell 以及Sheng Wu 表达了感谢,并对新任董事以及回归的董事表达了欢迎。 其中,新任董事姜宁(Willem Jiang)是Apache Local Community (ALC)Beijing的发起人。 ASF 董事会职责 Apache 软件基金会 (ASF) 的董事会根据章程管理和监督基金会的业务和事务,其中包括对基金会资产(资金、知识产权、商标和设备维护)的管理、任命董事会主席和管理 ASF Officers,以及为 Apache 项目...
- 下一篇
俄乌局势波及开源,各大开源社区“站队”表态
受俄乌局势影响,以美国为首的西方社会对俄发起新一轮的制裁,Oracle、SAP、Apple、Google 等主要的科技企业都宣布中止在俄业务,英特尔、AMD、戴尔、联想等硬件企业相继被外媒曝出已中断向俄供货。台积电也表示将遵守美国出口管制。 除了经济制裁和科技领域的产品服务“断供”外,西方文化、体育、音乐、学术、游戏等领域也加入了对俄制裁的大军,甚至连产自俄罗斯的宠物猫都在制裁对象之列。 此外,很多信息表明此次事件的影响已经延伸到了开源软件领域。 首先是部分开源相关的商业公司响应西方社会号召,开始切断或疏远与俄关系。 据俄罗斯本地媒体消息称,俄罗斯程序员或因为制裁而无法正常使用 GitHub。3 月 2 日 GitHub 的官方回应似乎印证了这一说法:“会确保全球开发者的正常访问,同时也会遵守政府提出的出口管制和贸易法规。其中包括严格限制俄罗斯获得其维持侵略性军事能力所需的技术。” 俄罗斯市场占比最高的移动操作系统 Sailfish OS 制造商 Jolla 公司宣布将切断与俄联系,寻求欧洲资本进行资产重组。基于开源 Sailfish OS 研发的 Aurora OS(中文名:极光)是...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Hadoop3单机部署,实现最简伪集群
- CentOS7设置SWAP分区,小内存服务器的救世主