PerfMa

IT系统稳定性保障专家

请至少选择一个您感兴趣的方案
发送验证码

感谢您的提交!

我们会在2工作日内与您联系

产品

全天候为您的IT系统稳定运行提供有力保障
即刻开启您的IT系统稳定性保障之旅

XSea 全链路压测平台

多地域高仿真流量模拟、端到端流量染色与数据隔离、全链路压测风险熔断

XWind 性能风险巡检与诊断平台

无人值守智能分析、风险处理能力闭环、可拓展性能风险知识库、丰富图表及报告、开放API助力DevOps

TestMa 质量效能平台

全流程的质量闭环,可度量的质量数据,无门槛的接口编排,高效率的精准测试

XChaos 混沌工程平台

应用架构智能感知、故障演练场景丰富、高级多流程编排、多维度演练观测、过程安全控制、第三方集成扩展

XSpider 监控平台

无侵入实时性能分析、低性能开销、动态采样、根因定位

解决方案

沉淀PerfMa多年的业务经验,提供金融、
证券、快消、交运等多个领域的解决方案

金融

依托全链路压测平台的能力,建立一套完整的性能保障体系

电商

基于平台的建设及专家咨询服务,进行统一平台管理,实现工具、框架的统一

连锁快消

实现多维自动化能力,协助构建标准化的性能测试及回归体系,提升测试效率

交通运输

以数据驱动,形成标准化测试能力,保障系统的正确性、性能容量及可靠性

公司动态

全方位汇集PerfMa大小资讯
寻找对您有帮助的事件

PerfMa新闻

PerfMa公司最新动态或消息,为您提供关于PerfMa公司的第一手资讯

PerfMa活动

为您提供PerfMa线上线下精彩活动回顾及预告

关于

和优秀的小伙伴一起共事
不负初心,用技术的力量创造梦想

关于PerfMa

强大的专业团队、企业资深专家,致力于为企业提供性能领域的全方位解决方案

加入我们

浓厚的工程师文化、靠谱的发展平台、舒适的办公环境,拥抱变化中快速成长

社区&开源

汇聚IT系统稳定性领域问题诊断调优精英
共建IT系统稳定性领域问题诊断调优标准和能力

专注性能领域垂直社区,几十万开发者在这里交流性能问题,分享技术干货,是开发者们学习和成长的乐园。


访问HeapDump社区 >

为终结性能问题而生的开源插件容器,将定位/解决各种性能问题的工具适配成插件,通过相互联动组合,一键解决您的性能问题。


访问XPocket官网 >
KDAB 推出 CXX-Qt ,为 Qt 提供安全的 Rust 语言绑定
2022-03-04

专注于 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 仓库查看进度。

 

文章来源:OSCHINA

链接:https://www.oschina.net/news/184966/cxx-qt-rust-bindings

请至少选择一个您感兴趣的方案
发送验证码

感谢您的提交!

我们会在2工作日内与您联系

业务咨询电话:4008-717-107

公司联系电话:0571-8500-1801