Rust1.0发布于2015年,它的第六个生日刚过去不久。从它发布起,尤其是在过去的一年里,Rust发生了很多变化。在2020年,很多组织还在怀疑Rust是否已经准备好生产,那时还没有基础,也没有const泛型。
在COVID-19大流行期间,Rust全球分布的数百名团队成员和志愿者,除了各种错误修复版本外,还发布了超过9个新的Rust稳定版本。在今天,”Rust投入生产 “已经不是一个问题,而是一个声明。新成立的Rust基金会有几位成员,他们很重视在生产中使用Rust,并且对其开放的开发生态系统继续提供支持和做出贡献。
接下来回顾一下过去一年的一些主要改进,看看社区是如何在生产中使用Rust的,最后展望一下目前正在进行的一些工作,以改进和使用Rust在明年的小型和大型项目。
最近的新增内容
在过去的一年里,Rust语言有了巨大的进步,获得了很多生活质量方面的特性,虽然它们没有从根本上改变语言,但它们有助于在更多的地方使用和维护Rust,甚至使用起来更容易。
- 从Rust 1.52.0和升级到LLVM 12开始,围绕前进过程的少数不健全的情况之一(如处理无限循环)终于得到了解决。这是Rust团队和LLVM项目之间的长期合作,也是Rust的改进也有利于更广泛的编程语言生态系统的一个很好的例子。
- 在支持更广泛的生态系统方面,引入对64位ARM Linux的一级支持,以及对ARM macOS和ARM Windows的二级支持,使得Rust成为一个更好的地方,可以在新的和不同的架构上轻松构建你的项目。
- 最明显的例外是对Rust的编译时能力的重大改进。稳定了原始类型的常量泛型,增加了 “const fn “的控制流,并允许在更多的地方使用过程性宏,这就允许创建全新的强大的API和板块类型。
Rustc并不是唯一有重大改进的工具。
- Cargo最近刚刚稳定了它的新特性解析器,这使得在不同的目标上使用你的依赖关系更加容易。
- Rustdoc稳定了它的 “文档内链接 “功能,允许你在文档中轻松自动交叉引用Rust类型和函数。
- Clippy与Cargo现在使用了一个单独的构建缓存,提供了更加一致的行为。
发展中的Rust
每年Rust在社区和行业中的发展和采用都是令人震惊的,过去的一年也不例外。2020年,Rust再次被StackOverflow评选为最受喜爱的编程语言。Rust团队也对社区中的每一个人表达了感谢。
随着Rust基金会的成立,Rust已经能够更好地建立一个可持续的开源生态系统,使每个人都能够建立可靠和高效的软件。一些使用Rust的公司已经组建了专门维护和改进Rust项目的团队,包括AWS、Facebook和微软。
而且,不仅仅是Rust在变大。越来越多的公司已经在他们的项目中采用Rust,并提供官方支持的Rust API。
-
微软和亚马逊最近都宣布并发布了他们新的官方支持的Rust库,用于与Windows和AWS互动。官方对这些大规模API的第一方支持有助于使Rust成为人们在决定为他们的项目使用什么时的第一选择。
-
cURL项目已经发布了新的版本,提供了对使用Rust库处理HTTP/s和TLS通信的选择支持。这是ISRG、Hyper & Rustls团队和cURL项目之间的一次巨大的社区间合作,我们要感谢大家的辛勤工作,为cURL这样一个庞大且广泛使用的项目提供了新的内存安全后端。
-
Tokio(用Rust编写的异步运行时),发布了它的1.0版本,并宣布他们有三年的稳定性保证,为大家编写可靠的网络应用提供了坚实、稳定的基础,同时又不影响速度。
未来的工作
所有这些都只是开始,我们看到越来越多的倡议将Rust放在令人兴奋的新地方。
- Critical Section & Ferrous Systems已经启动了Ferrocene,这个项目旨在使Rust成为整个行业的安全和任务关键系统的可行的编程语言。
- Embark工作室已经发布了
rust-gpu
的初始原型,这是一个新的编译器后端,允许使用Rust为GPU编写图形着色器。 - Linux项目目前正在考虑将Rust作为第二种语言加入内核的建议,以便能够编写更安全的驱动和内核空间代码。
- 谷歌已经宣布,它现在支持用Rust构建Android操作系统的低级组件,并且已经开始努力用Rust重写他们的蓝牙堆栈!
现在,Rust团队正在计划和协调2021年的Rust版本。和去年一样,很多变化的主题都是围绕着提高生活质量。你可以查看Rust团队最近关于“Rust 2021版的计划”的文章,看看各团队正在计划哪些变化。
这些只是冰山一角;还有更多的变化正在进行,Rust中每天都有令人兴奋的新的开放项目在启动。