Rust 1.87.0 正式发布 & Rust 1.0 十周年纪念日


5 月 15 日是 Rust 1.0 发布十周年纪念日,Rust 项目开发者在荷兰的 Utrecht 举办了“Rust 十周年”庆祝活动,并在当天发布新版本 1.87.0。

新版本的主要新特性包括:

  • 标准库加入匿名管道(Anonymous Pipes)
use std::io::Read;

let (mut recv, send) = std::io::pipe()?;

let mut command = Command::new("path/to/bin")
// Both stdout and stderr will write to the same pipe, combining the two.
.stdout(send.try_clone()?)
.stderr(send)
.spawn()?;

let mut output = Vec::new();
recv.read_to_end(&mut output)?;

// It's important that we read from the pipe before the process exits, to avoid
// filling the OS buffers if the program emits too much output.
assert!(command.wait()?.success());
  • 安全架构 intrinsics
#![forbid(unsafe_op_in_unsafe_fn)]

use std::arch::x86_64::*;

fn sum(slice: &[u32]) -> u32 {
#[cfg(target_arch = "x86_64")]
{
if is_x86_feature_detected!("avx2") {
// SAFETY: We have detected the feature is enabled at runtime,
// so it's safe to call this function.
return unsafe { sum_avx2(slice) };
}
}

slice.iter().sum()
}

#[target_feature(enable = "avx2")]
#[cfg(target_arch = "x86_64")]
fn sum_avx2(slice: &[u32]) -> u32 {
// SAFETY: __m256i and u32 have the same validity.
let (prefix, middle, tail) = unsafe { slice.align_to::<__m256i>() };

let mut sum = prefix.iter().sum::<u32>();
sum += tail.iter().sum::<u32>();

// Core loop is now fully safe code in 1.87, because the intrinsics require
// matching target features (avx2) to the function definition.
let mut base = _mm256_setzero_si256();
for e in middle.iter() {
base = _mm256_add_epi32(base, *e);
}

// SAFETY: __m256i and u32 have the same validity.
let base: [u32; 8] = unsafe { std::mem::transmute(base) };
sum += base.iter().sum::<u32>();

sum
}
  • 通过asm!内联汇编可跳转到 Rust 代码中的标记块
unsafe {
asm!(
"jmp {}",
label {
println!("Jumped from asm!");
}
);
}
  • 稳定 API 等等

为庆祝 Rust 1.0 稳定版发布十周年,Rust 作者 Graydon Hoare 写了一篇《10 Years of Stable Rust: An Infrastructure Story》长文进行回顾,他在文章提到了一组数据:

  • 1.0 之前,Rust 代码库累计了 4 万次提交;此后又新增了 24.6 万次提交。换算下来,过去 10 年几乎是每小时合并 2.8 次提交。

  • 贡献者从 1.0 时不足 1000 人,扩展到现在约 6700 人。

  • 项目已关闭超过 4.7 万个 issue,合并了 14 万多个 PR。

  • 1.0 时共计约 1100 份 RFC(用于语言演进的提案),如今累计达到了 3772 份。

  • 发布了 87 个正式版本,大多数都按六周节奏准时发布。

  • 推出过 3 个 Edition(版本变更打包,兼容旧代码),用于引入需要 opt-in 的非兼容变更。

  • 每个版本的兼容性测试范围从 2500 个 crate 增长到了现在的 58.7 万个。


相關推薦

2025-04-08

4 月 4 日,微软迎来成立 50 周年纪念日,并在其雷德蒙德总部举行了庆祝活动。现任 CEO Satya Nadella、创始人 Bill Gates、前 CEO Steve Ballmer 首次同台。 活动期间,三名 CEO 共同回顾了该公司历史,Nadella 演示了如何在数分钟内用 Git

2022-11-19

后就会到达 100。 Daniel 发现明年是 curl 的一个重要周年纪念日,他想到了一个可以避免"100"版本号的方案——在 curl 诞生 25 周年当天发布 curl 8。如此一来,既凸显了周年纪念日的地位,又体现了升级主版本号的意义,更是直接

2023-05-30

行业提供标杆和最佳实践。 上海市开源产业服务平台正式启动 上海浦东软件园与 Linux 基金会亚太区签约,正式落地 Linux 基金会亚太区开源社区服务中心 上海浦东软件园与开源PHP签订战略合作协议,共建上海开源生态

2023-06-20

项目选择了 “ FreeBSD ”名称。(但其实 FreeBSD 的第一个正式版本直到 1993 年 11 月才发布) FreeBSD 基金会将六月的公告留给了 FreeBSD 30 周年庆,并推出了一系列活动,比如在 6 月 19 日发行 《FreeBSD 期刊 30 周年纪念特刊 》

2025-04-15

Rust 团队发布了 Rust 1.86.0 版本,通过rustup update stable 可更新。 该版本带来多项重要更新: 支持 trait 向上转型 HashMap 和切片可同时获取多个元素的可变引用 安全函数可使用 #[target_feature] 属性 新增指针非空

2022-06-20

Tauri 1.0 已正式发布。 Tauri 是一个桌面 UI 框架,可让开发者使用每个平台的 Webview 技术栈为所有主要桌面操作系统构建应用程序,目前支持 Windows/macOS/Linux 等平台。开发者通过 Tauri 几乎可以使用任何编译为 HTML、JS 和 CSS 的前端

2023-04-05

t 1.0 已发布,标志着项目已顺利从开发阶段“毕业”,可正式用于生产环境。 1.0 文档:https://slint-ui.com/releases/1.0.0/docs/slint/ Slint(最初称为"SixtyFPS")是一个 Rust 编写的综合性 UI 工具包,用于为桌面和嵌入式设备构建原生用户

2023-09-29

公司在 9 月的任意一天(通常是 9 月 27 日)庆祝其周年纪念日。 今天的涂鸦庆祝 Google 的 25 周年。虽然我们在 Google 总是面向未来,但生日也可以是反思的时候。让我们一起走下记忆的长廊,了解我们是如何在25年前诞生

2023-10-24

,Geany 发布首个版本 0.1。上周四刚好是 Geany 诞生 18 周年纪念日,官方发布了 2.0 正式版以表庆祝。 下载地址:https://www.geany.org/download/releases/ Geany 2.0 主要变化: 重构会话数据的处理方式 最低要求安装 GTK 3.24 工具包

2023-10-18

定性、引入新的预览模式、引入 fix safety 等级,以及执行正式的版本控制策略。 新的预览模式 通过预览模式,用户可自行选择体验新功能——用于启用新规则、不稳定修复和实验性代码分析。 [tool.ruff] preview = true 引

2023-03-03

布:经过近一年的开源研发工作,时序数据库 CeresDB 1.0 正式发布,达到生产可用标准。 CeresDB 1.0 官方中文文档:https://docs.ceresdb.io/cn/ CeresDB 1.0 核心特性介绍 存储引擎 支持列式混合存储 高效 XOR 过滤器 云原生分布

2022-07-04

过该软件查看和编辑照片。 目前 Darktable 4.0 版本已发布,以庆祝该项目自 1.0 版以来的 10 周年,该版本的重要更新内容如下: 主要功能 颜色和曝光映射 曝光和色彩校准模块中的一个新功能允许你为取色器定义并保存

2023-02-10

历经三年多的开发,Meilisearch 1.0 首个完全稳定版已正式发布,可用于生产环境且向前兼容。 Meilisearch 是 Rust 实现的高性能开源搜索引擎,支持方便地集成到任何网站或应用程序,支持自托管 (self-hosting),可作为 Algolia 和 Elasti

2023-12-14

Hyper 1.0-rc4 的最后一个版本,不久就会发布基于 Hyper 1.0 正式版本的下一个版本。 特色: - 有着比 axum 等更丰富的功能,但却更易于上手。 - 跟 go 等其他语言框架更接近,比 Rust 语言各个 Web 框架更少的类型系统的烦恼。 -