This Week in Rust 636 - 深度总结

This Week in Rust 636 - 深度总结

This Week in Rust 636 - 深度总结

原文发布于 2026年1月28日 | 本期共合并479个PR | 原文链接


目录

  1. 社区更新
  2. 本期精选文章
  3. Rust 项目更新
  4. 本期 Crate
  5. RFC 动态
  6. 即将到来的活动
  7. 本周金句

社区更新

Rust 1.93.0 正式发布

来源Rust Blog

Rust 1.93.0 稳定版正式发布!本期 TWiR 恰逢这一重大版本发布,带来了大量新特性和改进。本期深度内容涵盖了编译时反射、if let guard 稳定化路径等与 1.93.0 密切相关的话题。

crates.io 开发更新

来源Rust Blog

crates.io 团队发布了最新的开发进展更新,涵盖包注册表的基础设施改进、API 优化以及可持续性相关工作的最新进展。


本期精选文章

1. 编译时反射终于来了

来源Compile-Time Reflection Is Finally Here

编译时反射(compile-time reflection)是 Rust 社区期待已久的功能,本期 Weekly Rust 深度解析了该特性的最新进展和实际应用场景。


2. 深度解析 Turso:SQLite 的 Rust 重写版

作者:Sylvain Kerkour | 原文

Turso 是用 Rust 从头重写的 SQLite 兼容数据库,专为边缘计算场景设计。本文深入剖析其架构设计、性能优势以及从 C 迁移到 Rust 的技术细节。

核心要点

  • Turso 采用 Rust 重写 SQLite 的核心引擎,保留 SQL 兼容性
  • 针对边缘计算场景进行了深度优化:低延迟、水平扩展
  • Rust 的所有权系统在数据库开发中有效消除了内存安全类 Bug
  • 相比传统 SQLite,在分布式场景下展现出显著优势

3. Rust 大规模实践:为 WhatsApp 增加安全层

来源Meta Engineering Blog

Meta 工程团队发文介绍了 WhatsApp 如何在生产环境中大规模采用 Rust 来增强安全层。这篇文章来自 Meta 官方工程博客,具有很高的权威性。

核心发现

  • WhatsApp 使用 Rust 构建关键安全组件,处理数十亿用户的数据
  • Rust 的内存安全特性有效防止了传统 C/C++ 代码中常见的内存漏洞类别
  • 在 Meta 规模下部署 Rust 的实践经验,包括与现有 C++ 代码库的互操作
  • Rust 在安全敏感场景下的编译时保证带来了切实的安全收益

4. Rust vs JavaScript & TypeScript:性能、WebAssembly 与开发体验

来源JetBrains Blog

JetBrains 官方博客发布了一篇 Rust 与 JavaScript/TypeScript 的全面对比文章,从性能、WebAssembly 支持和开发者体验三个维度进行了深入分析。


5. 原子变量不仅仅是关于原子性

作者:Sander Saares | 原文

本文深入探讨了 Rust 中原子变量的双重角色:除了保证操作的原子性外,Atomic* 类型还承担着内存排序(memory ordering)的关键职责。作者通过实例说明了 Ordering 参数的重要性以及常见的误解。


6. if let guard 稳定化之路

作者:kivooeo | 原文

深入剖析 if let 守卫(guard)语法的稳定化进程,讲解了该特性的设计动机、实现挑战以及即将在 Rust 正式版中可用的时间线。


7. Nio v0.1.0:拥抱 Thread-Per-Core 架构

来源Nurmohammed Blog

Nio 是一个采用 thread-per-core 架构的 Rust 异步运行时,v0.1.0 版本正式发布。

架构特点

  • 每个 CPU 核心绑定一个线程,消除线程上下文切换开销
  • 采用共享无状态(shared-nothing)设计,避免跨核心数据竞争
  • 在特定工作负载下展现出优于传统 work-stealing 模型的性能
  • 适合对延迟敏感的网络服务场景

8. Vetis:超微型、超快速 HTTP 服务器

来源dev.to

Vetis 是一个极简的 Rust HTTP 服务器实现,以最小代码量和最高性能为目标,展示了 Rust 在系统编程领域的极致表现力。


9. cai 0.13:AI 命令行工具

来源GitHub

cai 是一个用户友好的 CLI AI 助手工具,v0.13 版本带来了多项改进,让开发者在终端中更便捷地使用 AI 能力。


10. r3bl_tui v0.7.7:现代异步 TUI 库

来源GitHub

r3bl_tui 发布了 v0.7.7 版本,特性包括:

  • 内建 readline 风格的输入组件
  • Markdown 编辑器
  • Flexbox 布局引擎
  • SSH 优化渲染模式

同时 r3bl-cmdr v0.0.25(TUI 生产力应用)和 r3bl-build-infra v0.0.1 也一并发布。


11. Rust 深度指南系列

《发布 Rust Crate 到 crates.io 完全指南》

来源dev.to

从零开始,涵盖 crate 命名、文档编写、版本管理、CI/CD 集成到正式发布的完整流程。

《设计 Rust 应用中的错误类型》

来源Expurple

深入探讨 Rust 应用层错误类型的设计模式,包括 thiserror vs 手动实现、错误分类策略与最佳实践。

《从零构建 LLM:第4部分——训练基础设施》

来源Tag1

用纯 Rust 从零构建大语言模型的系列教程第4部分,聚焦训练基础设施的搭建。

《用 Rust 替代 Protobuf:速度提升5倍》

来源pgdog.dev

实战案例:将 Protobuf 序列化层替换为 Rust 原生实现,端到端吞吐量提升 5 倍。

《异步 Rust 中的隐藏瓶颈:阻塞操作》

来源cong-or.xyz

深入分析异步 Rust 代码中同步阻塞调用带来的性能陷阱,包括诊断方法和修复策略。

《用 Rust + Burn 构建 24MB 离线 AI》

来源snaetwarre.github.io

展示如何使用 Rust 和 Burn 深度学习框架构建仅 24MB 的离线 AI 模型,用于疾病检测等场景。

《Rust CLI 打包经验总结》

来源ivaniscoding

作者分享了将 Rust CLI 工具分发到多个平台(crates.io、Homebrew、npm、Snap 等)的实战经验和踩坑记录。


Rust 项目更新

编译器

  • **#149174**:支持将 const 块作为 mod 条目
  • **#151457**:改进在返回 bool 的函数中使用 assert!() 宏时的错误信息
  • **#149639**:内联常量局部类型检查约束计算

标准库

  • **#151346**:添加 simd_splat 内置函数
  • **#151418**:调用 io::Error::kind 时避免引入 Unicode 处理
  • **#149869**:避免 dbg! 输出被撕裂(tearing)
  • **#151489**:将布尔方法标记为 const
  • **#151259**:修复 AVX-512 CPU 上 is_ascii 的性能回归(使用 -C target-cpu=native 编译时)
  • **#151611**:通过显式 SSE2 内置函数提升 x86_64 上 is_ascii 的性能
  • **#151453**:将 simd_insert_dynsimd_extract_dyn 设为 const
  • **#151337**:优化 vec.extend(slice.to_vec()) 路径
  • **#151010**:为 OsStr 使用 ByteStrDisplay 实现
  • **#148764**:为 ptr_alignment_type 添加更多 API
  • **#151494**:确保 sleep_until 中截止时间已过

Cargo

  • **#16557**:添加 -Z json-target-spec 选项
  • **#16552**:新增 redundant_readme lint
  • **#16560**:新增 non_*_case_features lint
  • **#16524**:新增 non_kebab_case_bin lint
  • **#16554**:新增互斥的 non_{kebab,snake}_case_packages lint
  • **#16553**:将 non_kebab_case_bins 改为复数形式
  • **#16551#16550**:修复 build-std 相关测试
  • **#16535**:修复 implicit_minimum_version_req 信息显示
  • **#16545**:增加 cache_lock 测试超时时间
  • **#16533**:cargo rm 无参数时建议表标志

rustdoc

  • **#151482**:添加”跳到主要内容”键盘导航链接
  • **#151216**:使弹出菜单在移动设备上可滚动

Clippy

  • **#16461**:let_and_return 中忽略含注释的情况
  • **#16469**:修复当目标类型非 Sizedmanual_dangling_ptr 的误报
  • **#16454**:修复 test_attr_in_doctesttest_harness 上的误报
  • **#16424**:将 manual_is_variant_and 扩展到覆盖手写的 is_none_or
  • **#16442**:manual_let_else 在 struct 模式以 .. 结尾时添加尾部逗号
  • **#16463**:短路表达式右侧不总是执行

Rust-Analyzer

  • **#21408**:支持 default_field_values
  • **#21499**:修复 apply_demorganif let 上的误用
  • **#21522**:toggle_macro_delimiter 添加分号
  • **#21497**:添加类型错误检测方法
  • **#21523**:修复 ungrammar 路径
  • **#21490**:修复”递归展开宏”中内建/常规 derive 的顺序
  • **#21495**:修复元组前 else 不完整的问题
  • **#21514**:修复 convert_range_for_to_while 中不正确的 continue

编译器性能

总结:本周有一个非常显著的性能改进,源于减少编译器总体工作量(#151382)。

指标 变化
主要改善 **-1.0%**(195个测试用例)
主要回归 0.6%(9个测试用例)
次要改善 -1.4%(157个测试用例)
次要回归 3.1%(47个测试用例)
  • 2个回归、2个改善、6个混合;其中6个在 rollup 中
  • 共进行42次构建产物比较

完整报告


本期 Crate

dynamodb-crud —— 用于操作 DynamoDB 表的类型安全 API。提供编译时保证的 CRUD 操作,避免运行时错误。


RFC 动态

已批准的 RFC

  • **RFC #3678**:Trait 方法实现限制(final 方法)。允许在 trait 中声明不可被实现者重写的方法,增强 API 设计的安全性和可预测性。
  • **RFC #3834**:#[export_visibility = ...] 属性。提供导出可见性控制机制。

新建 RFC

  • **RFC #3913**:自然方法消歧(Natural Method Disambiguation)
  • **RFC #3911**:添加 derive(Deref) RFC
  • **RFC #3910**:ABI 描述符(Abi Descriptors)
  • **RFC #3907**:Cargo mTLS 注册表认证
  • **RFC #3906**:让 Option 派生 #[must_use]
  • **RFC #3905**:版本类型化 cfgs(Version-typed cfgs)

最终评论期(FCP)

Rust 追踪问题 & PR:

编译器团队 MCP:


即将到来的活动

重点活动

时间 地点 活动
2月16日(CFP截止) 加拿大蒙特利尔 RustConf 2026
2月18-19日 英国伦敦 Rust Nation UK 2026
9月8-11日 加拿大蒙特利尔 RustConf 2026

近期全球活动(1月28日 - 2月25日)

欧洲:

北美:

亚洲 & 大洋洲:


本周金句

Telling a programmer there’s already a library to do X is like telling a songwriter there’s already a song about love.

告诉一个程序员”已经有库可以做 X 了”,就像告诉一个写歌的人”已经有人写过关于爱情的歌了”。

Pete Cordell,引自 rust-users 论坛


This Week in Rust 由 nellshamrell、llogiq、ericseppanen、extrawurst、U007D、mariannegoldin、bdillo、opeolluwa、bnchi、KannanPalani57、tzilist 编辑。在 r/rust 参与讨论。

中文总结由 opencode 生成,仅供参考。

作者

1uciuszzz

发布于

2026-01-28

更新于

2026-01-28

许可协议

评论