This Week in Rust 636 - 深度总结
This Week in Rust 636 - 深度总结
原文发布于 2026年1月28日 | 本期共合并479个PR | 原文链接
目录
社区更新
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 工程团队发文介绍了 WhatsApp 如何在生产环境中大规模采用 Rust 来增强安全层。这篇文章来自 Meta 官方工程博客,具有很高的权威性。
核心发现
- WhatsApp 使用 Rust 构建关键安全组件,处理数十亿用户的数据
- Rust 的内存安全特性有效防止了传统 C/C++ 代码中常见的内存漏洞类别
- 在 Meta 规模下部署 Rust 的实践经验,包括与现有 C++ 代码库的互操作
- Rust 在安全敏感场景下的编译时保证带来了切实的安全收益
4. Rust vs JavaScript & TypeScript:性能、WebAssembly 与开发体验
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 架构
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》
展示如何使用 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_dyn和simd_extract_dyn设为const - **#151337**:优化
vec.extend(slice.to_vec())路径 - **#151010**:为
OsStr使用ByteStr的Display实现 - **#148764**:为
ptr_alignment_type添加更多 API - **#151494**:确保
sleep_until中截止时间已过
Cargo
- **#16557**:添加
-Z json-target-spec选项 - **#16552**:新增
redundant_readmelint - **#16560**:新增
non_*_case_featureslint - **#16524**:新增
non_kebab_case_binlint - **#16554**:新增互斥的
non_{kebab,snake}_case_packageslint - **#16553**:将
non_kebab_case_bins改为复数形式 - **#16551、#16550**:修复
build-std相关测试 - **#16535**:修复
implicit_minimum_version_req信息显示 - **#16545**:增加
cache_lock测试超时时间 - **#16533**:
cargo rm无参数时建议表标志
rustdoc
Clippy
- **#16461**:
let_and_return中忽略含注释的情况 - **#16469**:修复当目标类型非
Sized时manual_dangling_ptr的误报 - **#16454**:修复
test_attr_in_doctest在test_harness上的误报 - **#16424**:将
manual_is_variant_and扩展到覆盖手写的is_none_or - **#16442**:
manual_let_else在 struct 模式以..结尾时添加尾部逗号 - **#16463**:短路表达式右侧不总是执行
Rust-Analyzer
- **#21408**:支持
default_field_values - **#21499**:修复
apply_demorgan在if 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:
- 稳定化
core::hint::cold_path new_range_api稳定化追踪(RFC 3550 的一部分)- 稳定化
assert_matches - 裸指针到引用的转换方法追踪
- 最小 const
ControlFlow方法追踪 - 解析:报告更多可见性相关的早期解析歧义
- 为 derive 辅助属性添加 FCW(将与内建属性冲突)
- 将
fmt::from_fn设为 const - 在 struct 模式字段简写中 feature-gate
mut ref模式 - 实现
PartialEq<Vec<U>>for [T; N] 和 &[T; N] - thread::scope:文档化 join 与 TLS 析构函数的交互
编译器团队 MCP:
即将到来的活动
重点活动
| 时间 | 地点 | 活动 |
|---|---|---|
| 2月16日(CFP截止) | 加拿大蒙特利尔 | RustConf 2026 |
| 2月18-19日 | 英国伦敦 | Rust Nation UK 2026 |
| 9月8-11日 | 加拿大蒙特利尔 | RustConf 2026 |
近期全球活动(1月28日 - 2月25日)
欧洲:
- 1月28日 德国多特蒙德 | Rust Dortmund Meetup
- 1月28日 捷克布拉格 | Rust Meetup Prague
- 1月28日 法国图卢兹 | Rust Toulouse - WASM & Elegant CLI
- 1月31日 瑞典斯德哥尔摩 | Ferris’ Fika Forum #23
- 2月4日 德国慕尼黑 | Rust Munich 2026/1
- 2月4日 德国科隆 | Rust in February: Speed up Your Python
- 2月11日 瑞士巴塞尔 | Rust Meetup #14
北美:
- 1月28日 洛杉矶 | Rust LA: Building Git-LFS Replacements
- 2月3日 纽约 | Rust NYC: Bevy Rendering & Build Times at Amazon
- 2月12日 犹他 | Full Stack Web Development in Rust
- 2月25日 洛杉矶 | Rust as a Glue Layer for AI-Native Applications
亚洲 & 大洋洲:
- 2月5日 韩国首尔 | Seoul Rust Meetup
- 2月11日 澳大利亚悉尼 | Welcome to 2026
- 2月21日 印度班加罗尔 | February Rustacean Meetup
本周金句
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 生成,仅供参考。
This Week in Rust 636 - 深度总结
https://1uciuszzz.github.io/2026/01/28/this-week-in-rust-636-summary/


