首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Rust日报】2020-08-22 googleautocxx - 高度自动化的rust调用c++,而且安全,时尚

    google/autocxx - 高度自动化的rust调用c++,而且安全,时尚 这个项目是一个从Rust中调用c++的工具,以一种高度自动化但安全的方式。...这样做的目的是,在使用bindgen的一个变体从现有的c++头文件自动生成接口的同时,也具有来自cxx的所有流畅安全性。可以把autocxx看作是将bindgen插入cxx的胶水。...void do_a_thing(); } use autocxx::include_cxx; include_cxx!...文章链接,https://not-matthias.github.io/kernel-printing-with-rust/ 视频系列: 使用Rust和Rocket构建一个智能书签工具 我在6月份写的文章...2的基础上创建了一个视频系列2,在文章2中,我们使用Rust和Rocket创建了一个智能书签工具。

    84510

    Rust 欧洲之声|Rust 和 Cpp 互操作

    语言层面的集成 我们先来看看语言层面的整合:如何使 Rust 调用 C++编写的代码,反之亦然。 Rust编译器无法理解 C++ 代码。这使得我们有必要告诉 Rust 编译器你想在C++端使用的代码。...绑定以Rust编译器可以理解的方式定义了C++方面的函数和数据类型。一旦有了绑定,Rust代码就可以使用这些绑定来调用C++端的代码。当然,在另一个方向也是如此。...这意味着将一个字符串从Rust传到C++总是安全的(假设标准库中关于字符串类型的所有小细节刚好匹配),但将一个字符串从C++传到Rust可能会引发恐慌(Panic)。...这就是我们在Slint中使用绑定生成器的方式:我们从我们稳定的Rust API中生成绑定。...它还将创建必要的绑定,以便从C++中调用新的rearm函数。一旦rust! 宏生成了这段代码,它将通过生成的C++绑定代码代替自己。

    3.6K21

    Rust漫画 #3 | 二次元 Rust Meetup 讨论会:Rewrite it in Rust 是否有害?

    文章讨论了将 C/C++ 代码迁移到 Rust 时,需要在 Rust 和 C/C++ 的接口(FFI)引入的潜在安全问题。...但是也需要 C/C++ 端不要错误调用回调函数。 异常安全问题 Rust 如果发生了跨 FFI 边界的 Panic 会造成未定义行为,但目前处理这类问题主要依赖程序员自己编码。...而这个 FFI 函数没有检查指针别名情况,C/C++调用时可能会违反这个不重叠要求,导致未定义行为。...Rewrite it in Rust 是否有必要 从内存安全角度看,RIIR 是很有必要的 论文中提到的问题,确实是存在的。...从软件工程角度来看,RIIR 是很有必要的 除了避免内存不安全(包括并发)问题之外,事实上 Rust 在其他方面也表现出色,比如避免逻辑错误。

    69310

    从C++转向Rust:两大主题值得关注!

    新春假期结束的第一篇干货,为大家带来的是从C++转向Rust主题的内容。在日常的开发过程中,长期使用C++,在使用Rust的过程中可能会碰到一些问题。...从C++转向Rust需要注意哪些问题?》 一、错误处理 (一)C++ 任何生产级别的软件开发中,错误处理都需要被妥善考虑。C++通常会有两种错误处理的风格: 从C继承下来的返回值风格。...对于可恢复的错误,使用Result返回错误,交由调用方决定该如何处理。而对于不可恢复的错误,使用panic!宏直接中止程序的执行。...(三)Rust错误处理惯例 如之前所说,Rust的错误处理是强类型的。因此,不能像C++的异常一样,错误可以穿透多层调用栈;相反,错误必须被逐层处理、翻译,不能一抛到底。这个工作其实是较为繁琐的。...因为在C++中,子类关系通常在继承关系中体现,所以从C++转过来的话,很容易下意识地认为子类就是继承。而事实上,子类关系是比继承关系更一般的(generic)关系。

    78930

    谷歌宣布支持使用Rust开发Chromium

    Jansens 解释道,Rust 和 C++ 是 Chromium 的基础,可以通过 cxx、autocxx bindgen、cbindgen、diplomat 和 crubit 等工具进行交互。...这些工具提供了一种安全的方法来从 C++ 代码调用 Rust 代码,反过来也一样。但是由于这两种语言各自的设计不同,它们之间的互操作性也存在限制。...这样的话,Rust 就不能在任意 C++ 代码中调用,只能在从 C++ 通过 API 传递的函数中调用。” 目前,Chromium 只能通过第三方库来暴露给 Rust。...谷歌已经将 Rust 引入安卓生态系统。微软 Azure CTO Mark Russinovich 呼吁在新项目中使用 Rust 而不是 C++。Linux 内核已经增加了 Rust 支持。...甚至是不愿意使用其不能控制的技术的苹果公司都已经一直在用 Rust。

    65020

    Carbon vs Rust | 你想要了解的

    比如,Rust 无法做到“获取一个带有 foo 方法的 Cpp 类并调用该方法,或者创建一个具有 foo 方法的类并从 C++ 调用该方法”。Rust 和 Cpp 交互只能通过 C-ABI 来完成。...如果是 Safe Rust 直接调用公开的 Cpp API,则要求 Cpp 代码在 API 边界遵循借用检查规则;反过来,Cpp 调用 Safe Rust API 的话,则要求 Cpp 用户遵循 Rust...而 Carbon 适用于严重依赖 C++ 的组织和项目,比如,具有大量 C++ 代码或使用许多第三方 C++ 库的项目。 Carbon 如何解决该问题?...Carbon 正在围绕安全性做出妥协,以便为 C++ 的发展提供一条道路。比如通过多种方式修改 Rust 模型以减轻 C++ 开发人员的负担、使用引用计数保证运行时内存安全(性能需要改进)等。...: https://shafik.github.io/c++/2021/12/30/usual_arithmetic_confusions.html [4] cxx: https://cxx.rs/ [

    1.6K11

    微软计划使用 Rust 取代 C 和 C++

    新智元推荐 来源:InfoQ 作者:王文婧 【新智元导读】微软近日提出,未来将使用 Rust 作为 C、C++ 以及其他编程语言的替代方案,以改善应用程序的安全性的计划。...近日,微软安全响应中心(MSRC)团队在官网更新文章,就近日提出的最新计划,即未来将使用 Rust 作为 C、C++ 以及其他编程语言的替代方案以改善应用程序的安全性的计划,从空间内存安全、时间内存安全...C++ 中的 “现代” 构造(例如 span)能够在一定程度上预防某些内存安全问题。此外,我们应尽可能使用其它现代 C++ 功能(例如智能指针)。...Rust 的优势 多年来,微软始终在寻找更安全的 C 和 C++ 的替代品。...在国内,百度、字节跳动、 PingCAP、蚂蚁金服、知乎、SenseTime 等企业也都在使用 Rust。 Rust 存在的问题 然而,Rust 仍存在一些不足。

    1.1K20

    GitHub 热点速览 Vol.35:Lets Go,Rust 大放异彩

    作者:HelloGitHub-小鱼干 摘要:语言之争,一直存在于各类社群,不论是单个编程语言的交流群,亦或是 NoSQL、云开发等技术群,总能看到“要不要换 Go”、“Rust 比 C++ 更强”的影子...设计目标为: 提供完整 2D/3D 功能集 新手易上手,高级用户可灵活使用 以数据为中心,使用实体组件系统范式的面向数据架构 模块化,可随意替换你不喜欢的模块 快速运行,并行运行 生产可用,快速编译变更...ORM 框架 - Facebook 出品】( https://v2ex.com/t/683589) GitHub 地址→https://github.com/facebook/ent 2.6 自动化安全调用...C++:autocxx 本周 star 增长数:350+ New autocxx 是一个以高度自动化、安全地从 Rust 调用 C++ 的工具。...这样做的目的是,在使用 bindgen 变体从现有的 C++ 头文件自动生成接口的同时,它具有来自 CXX 的流畅、安全性。可以把 autocxx 看作是将 bindgen 插入 cxx 的胶水。

    89210

    【Rust日报】2022-08-29 RLS 谢幕

    RLS 谢幕 目前,一个 RLS 的 pull request 已经被合并, 在一些 IDE 上会提示 RLS 已经不再可用,并且提示用户使用 rust-analyzer....原文链接: https://github.com/rust-lang/rust/pull/100863 Cxx-Qt: 现在可以完全使用 cargo 来编写 QML 的应用了 ​ Cxx-Qt 是一个自动生成代码的库...,通过通用接口(比如可以直接公开到QML的qobject)在Rust和c++之间传输数据....原文链接: https://github.com/KDAB/cxx-qt/pull/221 Sycamore: 0.8 版本发布 Sycamore是一个 响应式 库,可以使用 Rust 和 WebAssembly...使用 rust 和 WebAssembly 符合人体工程学和直觉. 编写代码非常自然, 所有都构建在响应式基础上, 没有使用虚拟 DOM. 无 Javascript. 目前 0.8 版本发布.

    29630

    从C++转向Rust需要注意哪些问题?

    导语 | 在日常开发过程中,若长期使用C++语言,在初次使用Rust的过程中可能会碰到一些问题。...本文尝试从C++的角度来说明在使用Rust时需要特别注意的一些地方,特别是其中的思维方式的转变(mind shift)。...一、赋值的move语义 (一)C++ vs Rust C++的赋值操作是copy语义,在不考虑优化的情况下,从语义的角度理解,赋值后内存中的某个对象即变成了两份。...Rust对此问题主要使用了两个机制:枚举(enum)和模式匹配(match)。相比较C++的enum, Rust的enum更像是C++的union。...("{}", n); }} 五、总结 本文主要是记录自己从C++转向Rust碰到的一些问题,特别是记录两种语言在处理程序设计中基础问题的不同套路。

    95930

    【Rust日报】2022-11-14 从汇编代码来理解 enum

    从汇编代码来理解 enum Rust enum 是一个非常强大的特性, 很多人好奇他内部是如何实现的, 这里作者从生成的汇编代码来帮你深入理解 Rust 的 enum..../ Rust 和 C++ 的相互集成 在这篇博文中, 作者探讨 Rust 和 c++ 集成的两个方向,并介绍作者在工作中使用的一些工具,并且详细描述了这些工具在何时使用才是最有效的. bindgen:...解析 c header文件并且生成 Rust 的 binding. cbindgen: 解析 Rust 代码,并且生成 c和 c++的 header 文件 cxx crate: 半自动的 c++绑定....cpp crate: 在 Rust 中写 c++的代码....原文链接: https://slint-ui.com/blog/rust-and-cpp.html 如何开始学习 Rust 这里整理了新手如何开始 Rust 之旅的一系列问题: 从个人对 Rust 的预期

    62230
    领券