jjzjj

白宫发文,呼吁开发者放弃C、C++:Rust被「钦点」内存安全

近日,在一份19页的报告《回归基础构件:通往安全软件之路》中,白宫国家网络主任办公室(ONCD)呼吁开发者使用「内存安全的编程语言」,比如Rust语言。报告指出,从一开始就选择内存安全的编程语言,是以安全设计方式开发软件的重要途径。此外,ONCD表示,报告中的建议是与包括科技公司、学术界和其他机构合作制定的,并收集了包括惠普、埃森哲和Palantir在内等多家科技公司支持报告的意见。报告地址:https://www.whitehouse.gov/wp-content/uploads/2024/02/Final-ONCD-Technical-Report.pdf其实,这并不是美国官方机构第一次呼

Rust vs. Zig:究竟谁更胜一筹?性能、安全性等全面对决!

1、什么是Rust?Rust是一种以效率、性能和内存安全著称的通用型编程语言。它引入了一种新的编程方式,使开发者仍然能够使用面向对象以及函数式编程。使用Rust进行编码需要一种不同往常的思维方式,这部分主要围绕着语言规则中的所有权和借用展开。虽然这种思维方式能够让开发者更容易编写出安全高效的代码,但与C和C++等语言相比,特别是对于新手来说,充满挑战性。Rust消除了C和C++跨平台的限制,允许将代码编译为目标系统运行的可执行文件。这意味着可以在不做重大修改的情况下将代码编译为多系统版本。让我们看一个Rust版的Helloworld:fnmain(){lettext:&str="World";

Go 与 Rust:导航编程语言景观

在当今构建软件时,开发者在编程语言上有着丰富的选择。两种脱颖而出的语言是Go和Rust-都很强大但却截然不同。本文将从各种因素比较这两种语言,以帮助您确定哪种更适合您的需求。我们将权衡它们在并发、安全性、速度、互操作性等方面的方法。我们将探讨每种语言的优势-Go适用于云原生开发,而Rust适用于系统编程。它们活跃的开源社区也被评估。通过并排评估Go和Rust,我们旨在提供您选择下一个项目的最佳语言所需的信息。无论您优先考虑生产力、性能还是健壮性,您都肯定能找到合适的语言。继续阅读以发现这两个编译器巨头之间的关键差异。Go与Rust特性GolangRust类型静态类型静态类型内存安全垃圾收集基于

Rust-AI todo list 开发体验

之前用AI协助开发了一个Vue模块,感觉意犹未尽,所以决定再让AI来协助我做一个todolist。todolist对我来说真是一个刚需,从我决定做一件事情,到这件事情做完,我的todolist不但不会减少,反而会增加。回来说说应用AI这件事情。我之前使用AI的量和现在比,相对要少很多,其中一个原因是我之前对那些技术细节很“熟悉”,使用AI帮忙写代码总是有隔靴搔痒的感觉。我对Vue的了解细节相对于React要少一些,因此,在应用AI上,感觉思想上的排斥要少很多。这次,我打算在Rust上继续尝试使用AI,从1月29日开始,到2月7日,完成todolist的开发工作。为什么是这段时间?因为这段时间是

rust实战系列八十四:内存不安全示例:修改枚举

Rust设计的这个原则,究竟有没有必要呢?它又是如何在实际代码中起到“内存安全”检查作用的呢?第一个示例,我们用enum来说明。假如我们有一个枚举类型:enumStringOrInt{Str(String),Int(i64),}它有两个元素,分别可以携带String类型的信息以及i64类型的信息。假如我们有一个引用指向了它的内部数据,同时再修改这个变量,大家猜想会发生什么情况?这样做可能会出现内存安全问题,因为我们有机会用一个String类型的指针指向i64类型的数据,或者用一个i64类型的指针指向String类型的数据。完整示例如下:usestd::fmt::Debug;#[derive(D

Rust 交叉编译 macOS 为 Linux 和 Windows

目录前言环境案例macOS编译为Linux和Windows可用二进制程序编译为Linux平台编译为Windows平台最后前言鉴于rust中文资料较少,遇到问题的解决方案更少。这里记录遇到的一些问题。Rust支持交叉编译,可以在macOS平台编译出Linux或者Windows可运行的程序,或者在Linux平台编译macOS或者Windows可运行的程序。本文主要文章讲解Mac平台编译为其他平台的二进制程序。想要实现跨平台编译且可运行的程序,那么我们就需要静态链接,这样生成程序才不会因为动态链接库的原因运行失败。默认情况下,Rust静态连接所有Rust代码。如果程序中使用了标准库,Rust会连接到

Rust 模式与模式匹配

原文基础上有删减,原文链接模式与模式匹配。目录所有可能会用到模式的位置match分支iflet条件表达式whilelet条件循环for循环let语句函数参数Refutability(可反驳性):模式是否会匹配失效所有的模式语法匹配字面值匹配命名变量多个模式通过..=匹配值的范围解构并分解值解构结构体解构枚举解构嵌套的结构体和枚举解构结构体和元组忽略模式中的值使用_忽略整个值使用嵌套的_忽略部分值用..忽略剩余值匹配守卫提供的额外条件@绑定模式(Patterns)是Rust中特殊的语法,它用来匹配类型中的结构,无论类型是简单还是复杂。模式由如下一些内容组合而成:字面值解构的数组、枚举、结构体或者

六个为Rust构建的IDE

Rust语言的学习曲线适中,介于高级语言和低级语言之间。这门语言既能编写系统软件,将嵌入式设备编译为x86ARM,也可以用于前端技术,这要归功于WebAssembly。在日渐成熟的发展中,Rust开始拥有更好的工具来提高效率。最近,一家提供集成开发环境(IDE)的捷克软件公司JetBrains发布了一个新的IDE——RustRover——用于编程语言Rust。它通过调试、语法高亮显示和错误检查等一系列特性提高了用Rust编码的效率。本文将列出六个在Rust上工作的IDE。1、RustRover由JetBrains开发的RustRover是一个为Rust开发量身定制的新兴IDE,目前还处于早期访

五个Rust项目帮助你成为一个更好的开发者

Rust是Mozilla开发的一种安全的现代编程语言。它是为高效、可靠的软件开发而设计的,特别是在对系统资源的底层控制。Rust具有独特的所有权系统和强类型系统,可以防止常见的编程错误。对于熟悉C++语言的开发人员来说,Rust很容易学习。它在web开发、嵌入式系统和网络中很流行。Rust社区是非常活跃的,有许多可用的库和框架。要成为一个更好的Rust开发人员,请查看这5个项目。1,Redox:Rust操作系统Redox是一个用Rust编写的操作系统,Rust是一种专注于安全和高性能的语言。Redox遵循微内核设计,它的目标是安全、可用和免费。Redox的灵感来自以前的内核和操作系统,如SeL

前端视角对Rust的浅析

概述本文将从Rust的历史,前端的使用场景和业界使用案例一步步带你走进Rust的世界。并且通过一些简单的例子,了解Rust如何应用到前端,提高前端的生产效率。Rust简史2006年,软件开发者GraydonHoare在Mozilla工作期间,开始了Rust作为一个个人项目。根据他在麻省理工技术评论的一次采访,Rust的灵感来自于Hoare公寓楼里一个坏掉的电梯。电梯操作系统的软件崩溃了,Hoare意识到这类问题通常源于程序如何使用内存的问题。通常,这些类型设备的软件是用C或C++编写的,但这些语言需要大量的内存管理,可能导致系统崩溃的错误。因此,Hoare着手研究如何创建一种既紧凑又无内存错误