Dojo
最新
最佳
搜索
订阅
解道Jdon
架构设计
领域驱动
DDD介绍
DDD专辑
战略建模
领域语言UL
领域事件
商业分析
工作流BPM
规则引擎
架构师观点
数据工程
产品经理
系统思维
微服务
微服务介绍
微服务专辑
模块化设计
SOA
API设计
clean架构
SpringBoot
分布式事务
事件溯源
Kafka消息
Kubernetes
DevOps
编程设计
GoF设计模式
模式专辑
面向对象
函数式编程
编程语言比较
编程工具比较
形式逻辑
前端编程
Reactive编程
Jdon框架
Rust语言
人工智能
Web3
模因梗
幽默梗
程序员吐槽
面试技巧
Java入门
数字化转型
认知偏差
道德经
更多话题
CXX库提供Rust和C+ 之间的安全相互调用
22-03-12
banq
CXX库提供了一种安全的机制,用于从 Rust 调用 C++ 代码和从 C++ 调用 Rust 代码。它开辟了一个共性机制,其中 Rust 和 C++ 在语义上非常相似,并指导程序员在这个机制内有效地表达他们的语言边界。
CXX 填充了低级别的东西,以便您获得安全的绑定,防止在不安全的 C 样式签名上执行外部函数接口的陷阱。
从语言边界的高级描述来看,CXX 使用类型和函数签名的静态分析来保护 Rust 和 C++ 的不变量。然后它使用一对代码生成器在两侧有效地实现边界以及任何必要的静态断言,以便稍后在构建过程中验证正确性。
由此产生的 FFI 桥以零或可忽略的开销运行,即无需复制、无需序列化、无需内存分配、无需运行时检查。
cxx在FaceBook等大规模生产中已经使用。
可被用于制作安全的 QT,rust-qt 的方法和示例 :
https://github.com/rust-qt/examples
当你构建了一个 rust 库,而你的二进制文件根本不是由 rust 驱动的。rust cxx-qt 提供了由链接在 rust 库中的 c++ 主驱动程序驱动;
但rust-qt 方法更好,因为您可以使用“cargo build --release”来构建基于 rust 的 qt gui。
最重要的是,使用 rust-qt 绑定,您的主要驱动程序是 rust,
1
RUST语言
编程语言平台比较