跳转到主要内容

Rust的设计目的是使开发快速安全的系统级软件变得容易。这是最新消息。

Rust编程语言的独特方法使代码比C、C++、Go和您可能使用的其他语言具有更好的性能和更少的妥协。它还定期更新,通常每月更新一次。

在哪里下载最新的Rust版本

如果您已经通过rustup安装了早期版本的Rust,则可以通过以下命令访问最新版本:

$ rustup update stable

Rust 1.66的新功能

Rust 1.66于2022年12月15日推出,使具有整数表示的枚举现在可以使用显式判别符,即使它们有字段。以前,开发人员可以在带有表示的枚举上使用显式判别符,但前提是它们的变体都没有字段。当在两种语言中枚举的表示必须匹配的语言边界之间传递值时,显式判别法非常有用。

同样在Rust 1.66中:

 

  • 一个新稳定的black_box函数接受一个传递的值,并将其返回。编译器将black_box视为可以对其输入执行任何操作并返回任何值的函数。当您不希望优化发生时,例如在基准测试期间或检查编译器生成的机器代码时,这对于禁用优化非常有用。
  • 开发人员可以使用货物移除来移除依赖项。Rust 1.62引入了cargo add,这是一个命令行实用程序,用于向项目添加依赖项。
  • 开发人员现在可以使用=模式中的x范围。
  • Linux构建现在分别使用LTO和BOLT优化了rustc前端和LLVM后端,提高了运行时性能和内存使用率。
  • API已经稳定,例如proc_macro::Span::source_text和Option::unzip。

Rust 1.65的新功能

Rust 1.65于2022年11月3日推出。在这个版本中,通用关联类型(GAT),这是一个备受期待的功能,已经在工作了几年,终于被引入了。GAT允许开发人员在相关类型上定义生存期、类型和常量泛型。GAT启用了以前在Rust中不可能的模式。

同样在Rust 1.65中:

  • 引入了一种新类型的let语句,let else,它具有一个可拒绝的模式和一个在该模式不匹配时执行的发散else块。
  • 普通块表达式现在可以标记为中断目标,从而提前终止该块。
  • 为了改进编译,拆分调试信息的支持现在可以在Linux上稳定使用,因为从Rust 1.51开始,macOS就支持拆分调试信息。使用此功能,-Csplit-debuginfo=unpacked将调试信息拆分为多个.dwo-DWARF对象文件,而-Csplit-dbuginfo=packed将生成一个.dwp-DWARF包以及一个输出二进制文件,其中包含打包在一起的所有调试信息。
  • API已经稳定,如std::backtrace::backtrace、Bound::as ref和std::io::read_to_string。
  • MIR(中级中间表示)内联现在可用于优化编译,从而改善真实世界中的编译时间。
  • 在调度构建时,Cargo现在对挂起作业的队列进行排序,从而提高性能。

相关视频:使用Rust开发更安全的软件

快速了解新的Rust,它旨在创建快速的系统级软件。这两分钟的动画讲解器展示了Rust如何绕过内存和管理这两个棘手的编程问题。

Rust 1.64的新功能

2022年9月22日发布的Rust 1.64.0稳定了IntoFuture特性,以增强、等待和改进API。IntoFuture与IntoIterator特性相似,但IntoFutur改变了.await的工作方式,而不是支持…in…循环。

[参加11月8日的虚拟峰会-首席信息官云峰会的未来:掌握复杂性和数字创新–立即注册!]

使用IntoFuture,.await关键字可以等待的不仅仅是功能;它可以等待任何可以通过IntoFuture转换为Future的东西,以帮助使API更加用户友好。未来,Rust的开发人员希望通过在类型别名中支持impl Trait来简化新命名期货的开发。这将简化类型别名签名,使IntoFuture的实现更容易,并通过从类型别名中删除Box使其更具性能。

同样在Rust 1.64中:

  • 该语言在core::ffi中提供了所有c_*类型别名,以及core::ffin::CStr,用于处理c字符串。Rust 1.64还提供了alloc::ffi::CString,用于仅使用alloc板条箱而不是完整的std库处理拥有的C字符串。
  • rust分析器是rust语言服务器协议的一种实现,现在作为rust所包含的工具集合的一部分。这使得下载和访问rust分析器更容易,并使其在更多平台上可用。该工具作为rustup组件提供,可以使用命令rustup component add rust_analyzer安装。
  • 当在一个Cargo工作空间中处理相关库或二进制板条箱的集合时,开发人员现在可以避免板条箱之间的公共字段值重复,例如公共版本号或存储库URL。
  • Ipv6Addr、Ipv4Addr、SocketAddrV4和SocketAdderV6的内存布局已更改为更高效和紧凑。
  • Rust编译器的Windows版本现在使用了配置文件引导的优化,从而提高了性能。
  • 许多方法和特性实现已经稳定,包括num::NonZero*::checked_mul、num::NonZero*:。