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_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_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**:修复当目标类型非 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:

编译器团队 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

许可协议

评论