首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

什么是Rust等同于C++的虚拟重写,以防止代码重写?

Rust是一种系统级编程语言,被设计用于开发安全、并发和高性能的软件。它被认为是C++的虚拟重写,因为它提供了类似C++的功能,同时解决了C++中常见的一些问题,如内存安全和数据竞争。

Rust相比于C++的优势主要体现在以下几个方面:

  1. 内存安全:Rust通过引入所有权、借用和生命周期的概念,确保在编译时就能够检测到内存安全问题,避免了常见的空指针和野指针问题。
  2. 并发性能:Rust的所有权和借用系统使得编写并发代码更加容易和安全。它提供了线程安全的并发原语,如通道(channel)和锁(lock),以及异步编程的支持,使得开发者能够充分利用多核处理器的性能。
  3. 高性能:Rust的设计目标之一就是提供与C++相媲美的性能。它通过零成本抽象和无运行时开销的特性,以及对内存布局和优化的控制,实现了高效的代码生成和执行。
  4. 生态系统:Rust拥有活跃的开发者社区和丰富的第三方库,涵盖了各种领域的应用开发需求。这些库提供了丰富的功能和工具,使得开发者能够更加高效地开发和维护代码。

Rust的应用场景非常广泛,特别适合以下情况:

  1. 系统级编程:Rust的内存安全和高性能使其成为开发操作系统、嵌入式系统和网络协议栈等底层软件的理想选择。
  2. 并发编程:Rust的并发原语和异步编程支持使其非常适合开发高性能的服务器、网络应用和分布式系统。
  3. 嵌入式开发:Rust的低资源消耗和可预测性使其成为开发嵌入式设备和物联网应用的理想语言。
  4. Web开发:Rust的高性能和安全性使其成为开发Web服务器和后端服务的良好选择。

腾讯云提供了Rust的云原生解决方案,包括云服务器、容器服务、函数计算等产品,可以满足不同场景下的需求。具体产品介绍和链接地址请参考腾讯云官方文档:

  • 云服务器:https://cloud.tencent.com/product/cvm
  • 容器服务:https://cloud.tencent.com/product/tke
  • 函数计算:https://cloud.tencent.com/product/scf

需要注意的是,本回答中没有提及其他云计算品牌商,因为题目要求不涉及亚马逊AWS、Azure、阿里云、华为云、天翼云、GoDaddy、Namecheap、Google等品牌商。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

那位用Rust重写数据库的创始人来复盘了:删除27万行C++代码,值吗?

++ 代码库,并用 Rust 语言从头开始重写了一遍系统。...这个架构最大的特点在于资源是无限的,既然有无限资源,性能并不是特别大的问题,只要加资源,性能就会更好,但是资源是收费的,设备是收费的,我们希望能够在保证用户性能的前提下让整个系统更加便宜,让普通用户以一种比较低的价格使用...InfoQ:C++ 代码风格不统一的问题,用 Rust 重写以后就不存在这个问题了吗?...Rust 的爽点和不足 InfoQ:Rust 比较爽的特性是什么? 吴英骏:首先,安全性肯定是让我们觉得是比较爽的,这对数据库项目非常重要。...重写理由 InfoQ:你会建议什么类型的公司或者业务团队在什么情况下选择重写?

90110

初创数据库公司的疯狂行为:删掉花7个月开发的27万行C++代码,用Rust全部重写一遍

C++ 支持的特性如此之多,以至于不同的开发人员可以以截然不同的风格编写 C++。不同背景的开发人员在一个团队中,保持代码可读性有困难。...) 作出决定后,RisingWave 团队花了约两个月的时间完全删除之前的 C++ 代码库,并用 Rust 重写了一遍系统,总共删除了 276,406 行代码。...写在最后 尽管 Rust 带来了明显的好处,但重写整个代码库并不是一件好玩的事情,而且这件事也不代表“每个数据库团队都可以放弃 C++ 转而选择用 Rust”。...吴英骏博士在文中表示,其实还有些关键因素存在:一是当时他们正在重构代码库以适应新的系统架构,重写(至少一部分)代码库是不可避免的事情;二是团队中有一些 Rust 爱好者不断向其他工程师宣传 Rust,并说服整个团队用...Rust 重写是一个实用的选择;三是 2021 年夏天后工程团队迅速扩大,大大加快了代码库的重写速度。

42850
  • Android 支持 Rust 编程语言,以避免内存缺陷(thehackernews)

    谷歌周二(2021-04-06)宣布,其开源版本的 Android 操作系统,将增加对 Rust 编程语言的支持,以防止内存安全漏洞。...为此,在过去的 18 个月里,该公司一直在用 Rust 构建 Android 开源项目(AOSP)的一部分。并且计划扩大这一项目的规模,以覆盖操作系统的更多方面。...不幸的是,对于操作系统的底层,Java 和 Kotlin 不是一个选项。” Android 平台中,C/C++ 语言编写的代码,在分析不可靠的输入时需要强大的隔离。...google 的想法是切换到 Rust 这样的内存安全语言,以做到首先防止 bug 发生。 谷歌指出:“Rust 使用编译时检查,来强制执行对象的生命周期/所有权。...尽管有明显的优势,但谷歌并不打算重写底层 OS,或者替换所有现有的 C/C++ 代码。而是将其安全的语言 Rust,努力集中在新的或最近修改的代码中,这些代码具有更高的内存错误可能性。

    1.4K20

    Android 平台基础支持转向 Rust(zdnet)

    它们的资源较少,而且具有更可预测的性能特征。对于 C/C++,开发人员负责管理内存生命周期。不幸的是,这样做很容易出错,特别是在复杂和多线程的代码库中。...此外,google 发现一半的内存 bug 来自一年内的新代码,因此将 Rust 对准新代码是有意义的,而不是用 Rust 重写操作系统。...“当缺陷相对罕见时,缺陷检测是最有效的,危险的缺陷可以被赋予必要的紧迫性和优先性。我们要想从缺陷检测的改进中获益,就必须优先防止引入新的缺陷。”...谷歌表示,使用 Rust 的好处之一是语言中固有的附加约束和检查,例如强制初始化变量,这可以防止 Android 中高达 5% 的安全漏洞。...Mozilla 最近在 Firefox 上运行线程清理器,以清除浏览器代码库中存在的任何数据竞争,这些问题是由 C/C++ 语言开发的。

    46710

    微软IT故障提醒:Rust比CC++更好

    微软 Azure 的 CTO Mark Russinovich 表示,开发人员应该逐步弃用 C/C++,转而使用内存安全的 Rust 语言,以减少系统崩溃和蓝屏死机。...对 Rust 的采用是循序渐进的;第一步是创建原型应用程序,以证明 Rust 代码可以与 Windows 协同工作。微软还将保护系统硬件的周边应用程序迁移到 Rust。...QuarksLab 去年指出了 TPM 2.0 代码中的两个漏洞,这些漏洞将内存暴露给越界读写,可能将关键信息暴露给虚拟化环境中黑客的攻击。像 Rust 这样的内存安全语言可以帮助防止此类问题。...微软不想重写整个代码,因此它尝试将 Win32k 的各个组件切片出来以用 Rust 实现。实验成功完成,Rust 组件现在与 Windows 一起发布。...“这尤其重要,因为 Microsoft Windows 是用 Visual C++ 编译器或 C 编译器编译的,而 Rust 的后端实际上是 LLVM [低级虚拟机],”韦斯顿说。

    13810

    Windows 11 初尝 Rust,36000 行内核代码已重写!

    Weston 还指出,“Windows 内核中现在有一个用 Rust 编写的系统调用。”  为什么要选择 Rust?...微软之所以想要逐渐摒弃 C/C++ 而拥抱 Rust,根据 Weston 的说法,Rust 代码比当前的 C++ 代码更容易编写和理解,也更安全。...微软现如今用 Rust 重写部分 Windows 内核代码,也是在为内核安全而考虑。 因为内核是计算机操作系统的核心部分,对整个系统的运作至关重要。...有 Rust 的存在是超级关键的"。 不过,需要注意的是,微软不会做的是用 Rust 替换内核中 C/C++ 的整个“40 年工作”。...针对如今 Windows 内核采用 Rust 改写,不少网友纷纷押注: Rust 是超越 C/C++ 的前进之路。 数十年的漏洞已经证明在使用 C/C++ 时防止内存破坏的 Bug 是多么困难。

    62830

    微软使用 Rust 重写 Windows 组件的体验:总体很正面

    是一种从根本上考虑安全性的编程语言,他们将尝试使用 Rust 重写各种产品,因为在过去的十年里,该公司 70% 以上的安全补丁都提供了与内存相关的错误,而 Rust 正是解决这个问题的“良药”。   ...近日,微软透露了使用 Rust 代替 C/C++ 编写 Windows 组件的实验感受。虽然它并没有具体说明哪些产品将用 Rust 重写,但微软表示将随时向用户报告实验进展情况。   ...微软 Hyper-V 团队软件工程师 Adam Burch 在博文中说: 我的任务是对 Windows 代码库的一个低级别系统组件进行实验性重写(目前不能透露是哪个组件),虽然这个项目还没有完成,但总的来说...Burch 指出安全转换、对 C 的安全支持、准确的分配以及对大规模单元测试的支持,是微软庞大的代码测试基础设施所需要的。...Burch 补充说道,Rust 在单片机和诸如内核和虚拟机监控程序等低级系统上有着光明的前景,在这些系统中,一旦成熟,该语言的安全性第一特性将使其具有相当大的吸引力。

    64240

    为了避免内存攻击,美国国家安全局提倡Rust、C#、Go、Java、Ruby 和 Swift,但将 C 和 C++ 置于一边

    美国国家安全局 (NSA) 敦促开发人员转向内存安全语言——例如 C#、Go、Java、Ruby、Rust 和 Swift——以保护他们的代码免受远程代码执行或其他黑客攻击。...这些项目不会替换旧的 C/C++ 代码,但会更喜欢 Rust 作为新代码。...例如——在最终(成功)用多线程 Rust 重写系统之前,Mozilla 多次尝试将多线程引入 Firefox 的 C++ CSS 子系统,但均以失败告终。 正确的前进道路是什么? 使用内存安全语言!...最好是您选择的组件是您已经考虑重写的组件:可能是为了性能、安全性,或者是因为代码太难维护。...Stylo,用 Rust 重写了 Firefox 的 CSS 引擎,是这种方法的一个成功例子。 无论哪种方法最适合您的组织,都需要牢记一些事项以最大程度地提高成功的机会。

    1.8K30

    为了避免内存攻击,美国国家安全局提倡Rust、C#、Go、Java、Ruby 和 Swift,但将 C 和 C++ 置于一边

    美国国家安全局 (NSA) 敦促开发人员转向内存安全语言——例如 C#、Go、Java、Ruby、Rust 和 Swift——以保护他们的代码免受远程代码执行或其他黑客攻击。...这些项目不会替换旧的 C/C++ 代码,但会更喜欢 Rust 作为新代码。...例如——在最终(成功)用多线程 Rust 重写系统之前,Mozilla 多次尝试将多线程引入 Firefox 的 C++ CSS 子系统,但均以失败告终。 正确的前进道路是什么? 使用内存安全语言!...最好是您选择的组件是您已经考虑重写的组件:可能是为了性能、安全性,或者是因为代码太难维护。...Stylo,用 Rust 重写了 Firefox 的 CSS 引擎,是这种方法的一个成功例子。 无论哪种方法最适合您的组织,都需要牢记一些事项以最大程度地提高成功的机会。

    86910

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

    文章讨论了将 C/C++ 代码迁移到 Rust 时,需要在 Rust 和 C/C++ 的接口(FFI)引入的潜在安全问题。...因为不可能将全部 C/C++ 代码都用 Rust 重写,目前主流的方式就是用 Rust 重写一部分在未来还需要持续维护和发展的代码,所以与 C/Cpp 安全交互是目前无法避免的。...文章首先指出,尽管用 Rust 重写代码可以提高内存安全性,但在 Rust 和 C/C++ 组件交互的界面仍可能引入新的 Bug。...时空安全问题 以 rustls 库为例,它需要与 C 代码共享证书验证器对象的所有权。rustls 通过 Rust 的Arc计数引用计数智能指针来管理这些对象,以实现多方共享一个验证器。...由于 C/C++ 程序通常不一定遵循这类不变量,因此 C/C++ 在与 Rust 代码交互时可能引发冲突,这类问题在用 Rust 重写后尤其需要重点考虑。

    69310

    RUST 编程语言使构建更安全的软件变得更加容易。RUST ALL THE THINGS 需要什么?

    C、C++ 和其他需要开发人员编写代码来管理其软件内存的编程语言被认为是“内存不安全”,因为即使是很小的错误也会造成内存安全问题。“无论你的开发人员多么有才华,他们都会犯错误,”Aas说。...2019 年,Microsoft Hyper-V 工程团队的 Adam Burch 在一篇博客文章中宣布,他正在用 Rust 重写 Windows 代码库的一个低级系统组件,尽管他不能说出是什么组件。...“虽然这个项目还没有完成,但我可以说我对 Rust 的体验总体上是积极的。对于那些希望避免经常导致 C++ 代码库中安全漏洞的常见错误的人来说,这是一个不错的选择。...Fortran 同样在世界各地的商业应用程序中仍然很常见。 也就是说,并非所有旧的 C/C++ 代码都需要重写。“我们并不是要解决成千上万的项目,”Aas说。“我们专注于几乎每个人都使用的关键组件。...当然,包括安全漏洞在内的错误是不可避免的。但是,通过选择一种可以防止内存安全问题的编程语言,完全有可能消除这些问题。

    9710

    Android 团队宣布 Android 开源项目(AOSP),已支持 Rust 语言来开发 Android 系统本身

    对于 C/C++,开发人员需要负责管理内存生命周期。不幸的是,这样做很容易出错,特别是在复杂的多线程代码中。...即使我们重新调整了 Android 团队中每个软件工程师的工作方向,重写数千万行代码,也是很难解决的。...上文中,对 Android 平台中内存安全漏洞的历史分析(从它们第一次引入时,就已经测量过),表明了为什么我们的内存安全语言工作,最关注的是新开发,而不是重写成熟的 C/C++ 代码。...优先性任务 Rust 对一系列语言特性,进行了现代化的设计和开发,从而提高了代码的正确性: 内存安全——通过编译器和运行时检查的组合,以强制执行内存安全。 数据并行——防止数据争用。...未初始化的内存漏洞一直是 Android 平台上 3-5% 比例的安全漏洞的根本原因。在 Android 11 中,我们开始在 C/C++ 中自动初始化内存,以减少这个问题。

    1.8K20

    我们用 Rust 重写了自己的项目

    为什么选择 Rust 笔者所在团队基于如下原因选择了 Rust 1....使用 Go, Python, Rust 三种语言实现了简单的编程语言栈式虚拟机并作了性能对比,Go 和 Rust 在这个场景下性能接近,Python 有较大性能差距,综合考虑下采用了 Rust,具体三种语言实现的栈式虚拟机代码细节在...使用 Rust 过程中遇到了哪些困难 虽然决定了使用 Rust 重写整个 KCL 项目,其实团队成员大部分成员是没有使用 Rust 编写一定代码体量项目的经验,包括笔者个人自己也仅仅学习过 《The Rust...中可能都需要花费不少时间,比如如下的 Python 代码可能在 Rust 中的定义是这个样子的 Python Rust 当然更多的时间是在与 Rust 编译器本身的报错作斗争,Rust...结语 笔者个人觉得使用 Rust 重写项目后最重要的是不是我学会了一门新的编程语言,也不是 Rust 很流行很火因此我们在项目中采用一下,或者使用 Rust 编写了多少炫技的代码,是真真正正地使得语言和编译器本身更加稳定

    1.8K70

    谷歌为Android操作系统开发者增加了新的选择 Rust

    Rust的好处 Rust通过使用编译时检查和运行时检查相结合的方式提供内存安全保证,以强制执行对象的寿命/所有权,并确保内存访问是有效的。在实现这种安全性的同时,还能提供与C和C++相当的性能。...虽然Rust确实有它的好处,但一夜之间将整个Android操作系统换成Rust也是不现实的,而且也根本不需要这样做,因为大多数Android的内存错误都发生在新的或最近修改的代码中,甚至有大约50%的代码是一年内写的...因为谷歌认为,其内存安全语言的工作最好集中在新的开发上,而不是重写成熟的C和C++代码。 Rust一个重要优势是它专注于防止出现Bug,而不是严重依赖于检测Bug,从最开始就提高代码的正确性。...它还有几个关键特性,如内存安全、数据并发、更有表现力的类型系统、默认的不可变引用和变量、更安全的整数处理、标准库中更好的错误处理等。 切换到Rust对Android意味着什么?...Android新的蓝牙协议栈重写代码 "Gabeldorsche "就是用Rust编写的。Gabeldorsche的工作大约在Android 11的时候就开始了,但目前仍未投入使用。

    59910

    「快讯」Android 加入了对 Rust 语言的支持

    image.png 底层的操作系统需要 C、C++ 和 Rust 等系统编程语言。这些语言的设计以控制和可预测性为目标。它们提供对底层系统资源和硬件的访问。...当然,引入一种新的编程语言对于解决我们现有的 C/C++ 代码中的 bug 毫无作用。即使我们把 Android 团队的每一位软件工程师的精力投入到重构中,重写几千万行代码也是根本不可行的。 ?...以上对 Android 中内存安全 bug 的生命分析(从首次引入时开始衡量)表明了为什么我们的内存安全语言工作最好集中在新功能的研发上,而不是重写成熟的 C/C++ 代码。...优先考虑预防工作 Rust 对一系列其他语言进行了现代化,从而提高了代码的正确性。 「内存安全」:通过编译时和运行时检查的结合,加强了内存安全。 「数据并发」:防止数据竞赛。...操作符传播错误,并优化 Result 以实现低开销,Rust 鼓励用户以同样的风格编写他们的易错函数并获得同样的保护。 「初始化」:要求在使用前对所有变量进行初始化。

    93920

    在生产中使用Rust的著名公司及他们选择Rust的理由

    他们选择在 Rust(以前用的是 TypeScript) 中重写他们的多人同步引擎以提高性能,因为他们的服务器能力已经无法满足用户的增长速度需求了。...(原文) 想要了解更多的话,请阅读 Rust 主页上的案例研究。 Microsoft ? Microsoft 最近开始尝试将 Rust 集成到其大型 C/ C++ 代码工程中。...Facebook 使用 Rust 重写了之前用 Python 编写的源码控制后端。他们曾经一直在寻找一种编译语言来重写它,Rust 的安全性吸引力还是很足的,之后 Rust 就被源代码控制团队使用了。...它是一个虚拟机监视器,最初目的是为 AWS Lambda 和 AWS Fargate 服务构建的。 Discord ? Discord 在其多个工程中使用了 Rust,包括客户端和服务器端。...在这种情况下,Rust 使他们能够在保证内存安全的同时提升现有 Elixir 代码的效率。 他们还在 Rust(原来是 Go)中重写了 Read state 服务。

    87920

    先别急着“用Rust重写”,可能没有说的那么安全

    你的系统将更快、更安全! 上面的描述是不是感觉有些熟悉?没错,最近一段时间,“用 Rust 重写”正在以传销般的方式席卷整个开发领域。...用 Rust 重写的问题 很多朋友并不清楚,单纯用内存安全语言重写大型 C/C++ 系统组件只会引入额外的攻击面:新组件和现有代码间的外部函数接口(FFI)。...从本质上讲,Rust 和 C/C++ 是不能直接交互的——它们在类型、内存管理和控制流方面都采取了截然不同的方法。...下面,我们将着眼于现实场景下用 Rust 重写大型 C/C++ 系统组件的案例,并聊聊开发者在编写 FFI 代码时可能引入哪些新的类型错误和问题。...由于 C/C++ 程序通常不遵循相同的不变量,因此 C/C++ 在与 Rust 代码交互时可能引发冲突,这类问题在重写后尤其多见。

    43430

    让我们用 Rust 重写那些伟大的软件吧

    因为一旦托管代码和 .NET 框架发布,所有的安全问题都会消失。这使我把 SQL 注入演示代码,从 C++ 转换成 C 语言,以证明他错了。 啊,软件从业人员!...但是,在软件行业里面,重写软件仍然是一项乐此不疲的运动。 各时代的编程语言 回顾过去,每一个十年,都有自己时代选择的编程语言,世界被一次又一次地改写。...现成的算法和抽象库,以“自带电池”的方式吸引了系统和应用程序开发人员。 具有内置功能单元测试. 变量在默认情况下是不可变的。 Rust 宏,C 语言宏的智能进化,混合了 C++ 模板元编程。...谷歌正在将 Rust 推向安卓(用于重写蓝牙部分),及其 Linux 内核。Rust 也用在谷歌的新操作系统 Fuchsia。 英特尔说 Rust 是“系统编程的未来”。...另外,本文开头提到的后 2 篇文章中,阐述用 Rust 重写的合理性、可能性,以及示范先行项目。 说这个项目是个玩笑,但又有那么些真实性。毕竟现在,不少公司真的在用 Rust 重写一些久远的软件。

    3.3K30

    【Rust日报】 2019-08-12:Tokio alpha 版发布,新版本支持asyncawait

    它依赖的一个复杂而重要的组件是用C和C++的混合语言编写的: SPRIV-Cross。...它的编写方式也与惯用的Rust相去甚远: 代码更喜欢大的可变数据结构,这使得它很难模块化、测试、优化,尤其是在C/C++ FII之后进行交互。...它使我们的构建过程变得复杂,尤其是在需要单独的Emscripten构建(Rust代码不需要)来生成WASM模块的网络上,成为开发人员和用户的一个痛点。...所以,gfx-rs团队认为,是时候攻克gfx-rs中C++代码的最后一个堡垒了。...Safe Rust 如何跳过C/Cpp的陷阱 #IoT 文章里这个类比比较经典(普罗米修斯盗了天火,为世界带来了光明,但与此同时也带来了灾难): 我们本可以用C++重写我们的物联网平台应用。

    1.2K30

    【Rust日报】 2019-08-12 - 哪些软件应用值得用Rust重写?

    哪些软件应用值得用Rust重写? #rust Rust安全、高性能等优点吸引到很多优秀的开发者和公司将原有项目的部分或全部用它重写,下面是知乎上关于该问题的回答,如果你有重写的经验和想法,欢迎分享。...我已经把自己的数据压缩应用orz用rust重写了(https://github.com/richox/orz),整体上来看,当前的rust性能已经完全匹敌c/c++,而且开发过程释放了大量脑力,涉及到对内存精细操作的地方不再需要像...c/c++那样心惊胆战,也不需要处理c++的长篇编译错误,编译通过基本上就不会再出异常了。...——知乎作者 鱼你太美 类似OpenSSL这样的基础软件,几乎已经成了事实上的标准,大家都在用都依赖,堆积了差不多20多年的C代码,据说里面各种古怪的旧代码,奇怪的东西。其实可以考虑重写了的。...不过假如重写了之后,原来的攒了20年的OpenSSL的兼容性应该是会丢了,也就不是OpenSSL了。其实以Rust写的目标是替换或者兼容OpenSSL的项目是有的,而且在慢慢的发展。

    1.4K50
    领券