Rust 筛选自 28 条资讯

Rust 日报 · 2026-08-02

重要新闻

  • chrono 和 chrono-tz 即将停止维护,维护者推荐切到 jiff — 维护者 djc 在 issue 里把话挑明了:API 设计太老,重构代价太大,接下来几个月他会逐步停掉 chrono 和 chrono-tz 的维护,明确建议用 jiff。如果有人愿意接手,他可以酌情移交,但得他点头。对还在用这两个 crate 的项目,迁移只是早晚的事。

  • ST 开始在 crates.io 上发官方 Rust 传感器驱动 — 意法半导体给自家大批传感器推官方 Rust 驱动,直接把内存安全摆在第一位:RAII、所有权机制,不用 GC 就能防 buffer overflow 和 use-after-free。他们也说这不是要取代既有 C 生态,是补充。顺带提了 Embassy STM32 这类 HAL,以后嵌入式 Rust 对 ST 芯片的支持大概率会更“正统”。

  • Servo 0.4.0 发布,一个月 558 个 PR,SharedWorker、媒体查询大批落地 — Servo 0.4.0 把六月所有改动打包,单月 558 个 PR,比四月 534、五月 391 都高,直接创了记录。新加的特性有:实验性 attr()、calc() 惰性解析、@font-face 里的 font-feature-settings,以及 @media 下的一堆查询(height、aspect-ratio、orientation、pointer、hover)。DOM 这块补了 SharedWorker、console.dir()、customElementRegistry 初始化。现在外部贡献者也能参与写月度进展。


版本与发布


新工具与库

  • Syncular:离线优先的 SQL 同步,Rust / TypeScript 双核心实现 — 核心思路:每个客户端都跑一个真实的本地 SQLite 库(浏览器用 OPFS,原生端用 rusqlite),写入走乐观出站队列,服务端做唯一真相。项目是 spec-first 开发,Rust 和 TypeScript 两个核靠一致性测试严格对齐。Rust 核通过 C-ABI FFI 暴露,已经用在 Tauri、React Native、Swift、Kotlin 等绑定里;TS 核基于 @sqlite.org/sqlite-wasm,服务端支持 SQLite、Postgres、D1。测试策略值得一看——内存回环传输、故障注入、禁绝睡眠轮询。

  • QuantWave:一套 Rust 核心打出 Python 量化轮子加 WASM,批处理和流式结果严格一致 — 技术分析与回测引擎,所有指标都实现了流式 Next trait。用 proptest 保证了批处理路径(基于 Polars 表达式)和流式路径的结果比特级一致,省去重复的数学逻辑。Python 绑定走 PyO3 的 abi3 模式,一个 wheel 兼容 CPython 3.9 以上;纯数学核还能交叉编译到 WASM,在浏览器里直接回测。

  • Open OneNote Viewer:在 Linux 上用 Rust 看 OneNote 笔记 — 作者攒了十几年 OneNote 笔记,微软一直没出原生 Linux 客户端。他靠这个 Rust 项目,不用再守着 Windows 虚拟机或额外小 PC,直接就能在 Linux 桌面上查看内容。

  • Episko:给 Claude Code 终端会话搭个集中驾驶舱 — 作者用 Claude Code 时被一堆散落的终端窗口搞烦了,就用 Rust 写了个集中管理 Claude Code 会话的工具。目前只支持 Claude Code,团队内部已在日常使用并持续开发。

  • Papr:终端里的论文搜索、阅读、管理与写作 TUI 工具 — 全 Rust 构建的终端学术助手,主面板有每日随机论文推荐、阅读队列、书签、笔记和统计。可以从 arXiv 按标题、作者、DOI 或关键词搜索论文,内置 PDF 阅读靠 ratatui-image 在终端里渲染,还支持 Markdown 笔记。作者把它看成更偏论文场景的 Obsidian 替代品。


深度阅读与技术讨论

  • .boxed() 代价实测,附带一个只做 Box::pin 的微型 crate — 作者测了 futures::FutureExt::boxed() 的真实开销:不仅做了 Box::pin,还把类型擦除了,返回 BoxFuture,每次 poll 都走动态派发,编译器没法内联。文章比较了 Box::pin 和 .boxed() 的性能差距,然后发了个微型 crate boxpin,用法是 async { 42 }.pinned(),只干 Box::pin 的活,不擦类型。

  • 为什么 Casper 分叉了 rand crate — 作者觉得 Rust 生态默认的 rand crate 日常操作太不友好:方法散在 RngExt、IndexedRandom、SliceRandom 多个 trait 上,IDE 补全基本帮不上忙,你得提前知道哪个方法归哪个 trait、用在哪个类型上。他分叉出 urandom,把所有高层操作集中到一个 Random 包装结构,uniform、choose、shuffle 这些方法都是固有方法,不用再去导入扩展 trait。文章把这种单一入口的 API 设计观点讲得很清楚。

  • 一种老派的 Rust 命令行参数解析思路 — 作者有一个明确的观点:CLI 工具的行为应该融入目标操作系统,而不是迁就实现语言的习惯。他看不惯 Rust 社区几乎默认 clap 的做法,觉得工具最终应该像 coreutils 那样让 Unix 用户觉得得体。文章从 getopts 出发,给出一套小框架级别的包装方式,兼顾 Rust 的工程便利和 Unix 传统的参数风格。

  • 跨线程、无共享状态的消息通道该叫 IPC 吗? — 一个涉及 Rust 和 Python 交互的架构讨论:作者把异步 runtime 放在独立 OS 线程里,Python 解释器线程和它之间没有共享内存,只用通道传命令。他为这个名字犹豫了一下,帖子里引出了不少关于“进程间 vs 线程间”边界的辨析。

  • ATRVASA:用 Rust 搞零拷贝 eBPF 防火墙与可观测性代理 — 作者是系统工程师,设计 ATRVASA 因为传统网络监控工具从内核态往用户态拷贝数据包带来的 CPU 开销和上下文切换延迟,在 10G/40G 以上高吞吐场景下尤其要命。团队发了初始架构 RFC,想听听社区的反馈。

  • 一本面向 Rust + ESP32 的实践指南:从闪烁 LED 到 Wi-Fi 服务器 — 书名《impl Rust for ESP32》,算是官方 Rust on ESP Book 的延伸。全书走项目驱动路线,从 PWM 控 LED、OLED 显示屏、超声波测距、光敏照明、舵机,一直做到 Wi-Fi 应用、蓝牙通信、RFID 门禁、SD 卡存储、红外人体检测。适合翻完官方书以后想往真实固件开发再走一步的人。