Rust周刊2026W27 | Rust 1.96.1、Slint 1.17、Flowcat AI…

举报
yd_281145230 发表于 2026/07/10 12:04:44 2026/07/10
【摘要】 本周 Rust 生态迎来多个重要版本更新:Rust 1.96.1 紧急修复 Cargo 中 libssh2 的三个安全漏洞;Slint 1.17 新增拖放支持推进桌面就绪路线图;kache 0.8.0 实现 Windows ReFS ...

本周 Rust 生态迎来多个重要版本更新:Rust 1.96.1 紧急修复 Cargo 中 libssh2 的三个安全漏洞;Slint 1.17 新增拖放支持推进桌面就绪路线图;kache 0.8.0 实现 Windows ReFS 零拷贝缓存恢复。Flowcat 展示了 Rust 在实时语音 AI 领域的潜力——单机 2000 并发调用仅 0.6ms p99 延迟。工具链方面,extern “custom” 稳定化、rustc 并行前端 MCP 和 io::ErrorKind::TooManyOpenFiles 等进展值得关注。

🦀 Rust 工具链更新

🔧 编译器

⚡ 性能优化

去除了 check_unused 中对整个 crate 的 AST 遍历,仅扫描必要范围;crate 加载完成后 stable_crate_ids 读取改为无锁模式,减少了多线程场景下的竞争开销。

🔧 改进

重构了 lint pass 运行机制,使内部流程更清晰;同时简化了 proc_macro 的若干实现细节,降低后续维护成本。

📚 标准库

🆕 新功能

新增 io::ErrorKind::TooManyOpenFiles 错误类型,开发者现在可以精确匹配"文件描述符耗尽"场景;扩展了 OptionFlatten 的迭代器方法集合。

⚡ 性能优化

优化了网络地址解析器的实现,减少了地址解析场景的开销。

🔧 改进

将 std::io::Error 移入 core,使得 no_std 环境也能使用标准 I/O 错误类型,为嵌入式和无标准库场景提供更好的基础支持。

📦 Cargo

🆕 新功能

新增 -Zhint-msrv 标志,开发者可以在构建时让 Cargo 提示当前项目最低支持的 Rust 版本信息,有助于 min_supported_rust_version 相关决策。

🧹 Clippy

🆕 新功能

higher::Range 模块新增检测 new range 类型的能力;启用单个 ConstEvalCtxt 统一处理表达式求值,减少重复计算。

🐛 Bug修复

修复 chunks_exact_to_as_chunks 可能生成语法无效建议、方法名错误以及未区分可变性的问题;non_ascii_literal 和 invisible_characters 不再对原始字符串建议修复;manual_option_zip 在 map 接收器为惰性求值表达式时不再误触发;borrow_as_ptr 不再对生成的代码发出 lint。

🧹 Lint规则改进

filter_map_next 进行了清理并全面改进了建议输出;needless_late_init 扩展到覆盖分组赋值场景。

🔌 Rust-Analyzer

🆕 新功能

新增 E0596 诊断,帮助开发者发现借用了已冻结变量的可变引用;为类型不匹配添加了添加 .await 的自动修复建议。

🐛 Bug修复

修复了在关联类型常量上 lowering 崩溃以及悬停在匿名常量上崩溃的问题;Drop::drop 现在仅在类型实际实现了 Drop 时才运行,避免误调用。

🔧 改进

将 inline_convert_while_ascii() 标记为 unsafe,提醒调用者注意安全约束;用 gen-lsp-types 替代 lsp-types,改善 LSP 类型生成机制。

📝 新增·更新 RFC

📝 新提案

Method chain as item 提出将方法链作为独立项使用,允许更灵活地组织和复用链式调用;Add extern “custom” 提案与稳定化动作相互配合,推进自定义 ABI 调用约定的正式落地。

📋 跟踪 Issue

✅ 稳定化

c-variadic 函数定义、extern “custom” ABI 和 no_mangle_generic_items 提升为硬错误均进入稳定化流程;rustc 并行前端稳定化策略的 MCP 也已启动讨论。

🐛 Bug修复

修复了 repr(simd) 的 feature gate 检查以及 overflowing_literals lint 在重复取反时的误报问题;escape_debug_ext 不再转义 U+FF9E 和 U+FF9F 字符。

🔧 改进

新增 lint 检查无效的 POSIX 符号定义;BackendRepr 与 ABI 对齐解耦;repr(Rust) 布局下字段也必须适配其类型尺寸限制,减少未定义行为风险。

📌 跟踪

LocalKey/Cell::update、字符串/Path 的 trim 前缀与后缀、指针后布局信息以及原子易失性访问的 opsem 扩展已进入跟踪状态,开发者可关注后续进展。

🦀 Official

Rust 1.96.1 发布 | Rust Blog

Rust 1.96.1 是一个补丁版本,修复了编译到 Cargo 中的 libssh2 库的三个 CVE,解决了 Rust 包管理器中的安全漏洞。

学习 Rust 的多重旅程 | Rust Blog

Rust 博客的 Vision Doc 研究揭示,学习者通过多种路径(好奇心、嵌入式工作、就业市场压力、组织采纳、岗位调动)接触 Rust,并依赖官方和社区资源的混合,LLM 作为学习和示例生成工具的使用也在增加。

🛠 Project/Tooling Updates

Slint 1.17 发布

Slint 1.17 通过 DragArea 和 DropArea 组件添加了拖放支持,支持类型化数据传输载荷,以及系统托盘图标、工具提示和双向模型行绑定,推进了其桌面就绪路线图。

rustc_codegen_gcc:进展报告 #42

rustc_codegen_gcc 合并了多个上游的 libgccjit 补丁,并将 rustc 兼容性推进到 nightly 1.97.0,当前主要工作是维护 stdarch 测试,因为频繁的新内联函数需要对 LLVM 到 GCC 内建映射进行调整。

Test That!介绍

Test That!是一个从 GoogleTest Rust 分支出来的 Rust 测试断言库,引入了更简洁的匹配器语法,包括带 in_order() 链式调用的 contains_exactly! 用于有序容器匹配、带箭头运算符的改进 HashMap 匹配以及重命名 TestResult 以避免类型冲突。

RSSH 内部:一个 Rust crate、三个二进制文件及一路走来的 Tauri 经验

RSSH 作为一个 Rust 库 crate 构建,编译成三个特性门控的二进制文件(Tauri GUI 应用、CLI 和用于 JetBrains 的无头 WebSocket 服务器)以及一个移动端可链接库,所有组件共享同一个 SQLite 数据库,确保桌面、CLI、移动端和 IDE 环境中使用相同的主机、密钥和会话状态。

Rustty 1.38:可访问性与键盘导航

Rustty 1.38 增加了可访问性功能,包括一个运行时对比度增强系统,该系统通过 getComputedStyle 读取主题调色板并将暗淡颜色提升到主文本颜色附近,因为 CSS 相对颜色语法(oklch)并非在所有目标 WebView 基线(Safari 16 / Chromium 105)中都受支持。

GuardianDB 0.17.0:安全命名空间、Iroh 1.0 及 ODM 的到来

GuardianDB 0.17.0 完成了 Iroh 1.0 迁移、添加了用于对等复制的安全命名空间共享以及一个可选的 ODM 层(Rust + TypeScript 脚手架),并附带了事务/一致性 API 脚手架。

用 Rust 构建实时语音智能体运行时:无 GIL、单个二进制、单机 2000 并发调用

Flowcat 是一个用于实时语音 AI 智能体的 Rust 运行时,使用带限界通道(用于背压)的 tokio 任务、共享 Arc 音频帧(避免复制)以及优先级通道(处理中断),单台机器上从 10 到 2000 并发调用实现了平坦的 0.6ms p99 延迟,消除了基于 Python 的方案固有的 GIL 开销和 GC 暂停。

AimDB:自带连接器

AimDB 的连接器模型已经泛化:同一个 ConnectorBuilder trait 现在同时覆盖记录级协议桥接和完整数据库远程访问服务器,添加新传输仅需一个包含三个方法的薄 crate,取代了之前专用的 with_remote_access() API。

kache 0.8.0:Windows ReFS 零拷贝恢复

kache 0.8.0 为 Windows 通过 ReFS 带来了基于 reflink 的零拷贝缓存恢复,与 Linux/macOS 的 CoW 性能持平,并添加了自愈索引恢复功能,防止单个损坏条目导致整个缓存不可用。

Warbell——基于 Bevy 0.19 的城堡防御动作 RPG

Warbell 是一款基于 Bevy 0.19 Rust 游戏引擎构建的城堡防御动作 RPG,具有昼夜循环机制,玩家在白天收集资源和建造防御设施,在夜晚抵御跨五个生物群落岛屿的兽人军团。

我完全用 Rust 构建了一个 macOS FTP 客户端——没有 Electron,没有 WebView

一位开发者构建了 gmacFTP,一个完全用 Rust 编写的原生 macOS FTP/FTPS/SFTP 客户端,使用 Slint 进行 GPU 加速渲染,通过避免 Electron 或 WebView 框架实现了不到 8 MB 的二进制体积,并包含基于 Tokio 的自定义异步 FTP 实现和用于 SFTP 的纯 Rust SSH 传输。

📖 Observations/Thoughts

悬挂表达式

一个名为悬挂表达式的提议 Rust 特性(目前通过 RFC 3968 的移动表达式)允许闭包内的表达式在闭包运行之前求值,无论其在代码中的位置如何,都能有效地将其提升到闭包作用域之外。

Rust Web 开发的平凡一面

cot.rs 的作者认为,尽管 Rust 的安全性、性能和异步模型在技术上令人印象深刻,但 Web 开发的开发者体验在异步复杂性方面存在持续的摩擦——需要深入理解 async fn 和 Future 实现、管理任务与线程,以及处理重置回溯栈(这使得调试异步代码变得显著更困难)。

我发现知识图谱中 52% 是重复节点(以及我如何解决的)

作者发现其自主知识图谱中 52% 的节点是未被检测到的重复节点,原因是过于激进的过滤器导致系统陷入重新探索循环;解决方案是将单一的虚荣指标(节点数)替换为多个交叉验证信号,包括已验证的唯一性和基于新近度的加权相关性。

Rust 错误处理的新方法

作者介绍了一种新的 Rust 错误处理方法,超越了将错误向上传播或完全恢复的二元选择,为现有模式(如 panic、返回 Option 或返回 Result)增加了一个新的补充工具。

我们在运行时中嵌入了一个 Redis 服务器

Encore 在运行时中直接嵌入了一个内存 Redis 服务器,使得本地开发和测试无需外部缓存,并针对真实的 Redis 行为进行验证以确保与生产环境一致。

高性能 Rust:理解和消除内存碎片

提供的文章内容不是正文,而是一个「请启用 JavaScript」的站点提示。无法从其中提取技术要点。

AI 和 worktree 正在填满我们的磁盘:kache 存储实测

在写时复制文件系统上,Kunobi 的 kache 构建缓存通过克隆共享块而非复制它们,消除了由 AI 编码智能体生成的并行 worktree 中重复的构建产物,在 Firefox 基准测试中节省了 27.4 GB 的重复数据。

用 Rust 设计跨平台终端内存可视化工具

m-vis 使用 Rust 的条件编译和 trait 系统构建了一个跨平台内存可视化工具,将平台特定的堆元数据收集抽象到统一的 Core Engine 接口之后,实现了非侵入式内存扫描,且性能开销极小。

你的 Rust 服务可能不是内存泄漏——可能是分配器的问题

突发工作负载下 Rust 服务的高内存使用可能是由分配器持有内存以便重用,而非代码级泄漏导致的——即使所有事件处理完毕后,内存也从未返回给操作系统。

📚 Rust Walkthroughs

测量而非猜测:用 Rust 构建内容自适应视频编码优化器 viser

你提供的「内容」实际上是该网站的反爬/Bot 防护页面(「本网站使用安全服务保护免受恶意 Bot 攻击」),并非文章本身的正文。无法从这段文字中提取任何技术要点。

通过构建图书管理 CLI 学习 SQL 和 SQLx

一篇综合性教程,通过 sqlite3 教授 SQL 基础,然后将这些概念集成到 Rust 中,使用 SQLx 的编译时检查查询、连接池和宏来构建一个实用的图书管理 CLI 应用,包含 CRUD 操作和高级特性。

用状态机推理 Async Rust

提供的不是文章正文,而是页面上分享菜单的 CSS 和 JavaScript,不包含任何关于「用状态机推理 Async Rust」的实质内容。无法据此生成摘要。

C 到 Rust 迁移手册

Mainmatter 的书籍教授从 C 安全迁移到 Rust 的技术,涵盖混合 C-Rust 代码库、FFI 以及通过自定进度的练习将 C 惯用法转换为地道的 Rust。

📦 Crate of the Week

本周精选crate:deconvolution

deconvolution 是一个用于图像反卷积和恢复的 Rust crate,提供已知 PSF 方法(Wiener、Richardson-Lucy 等)和盲反卷积工作流,以及 PSF/OTF 转换、预处理和通过 ndarray 与动态图像 API 实现的仿真工具。

📌 foundation

Rust 基金会可信培训计划启动,为学习者提供质量认证标志

Rust 基金会推出了可信培训(RFTT)计划,这是由管理该语言的非营利组织认可的首个 Rust 培训提供者正式认证,Mainmatter、Integer 32、Wyliodrin、Doulos 和 Ferrous Systems 被命名为创始提供者。

📌 newsletters

Rust 科学计算 #19(2026 年 6 月)

cog3pio 引入了通过 nvTIFF 绑定的 GPU 加速 GeoTIFF 栅格解码,通过 DLPack 实现零拷贝 CUDA 到 Python 数据传输;同时 hyperreal、diffsol 和 oximo 的新版本为 Rust 生态带来了精确有理数运算、改进的 ODE/DAE 求解和代数优化建模。


往期精选

  • Rust周刊2026W26 | Bevy 0.19、OpenAI入基金会、Chromium用Rust PNG、hyper竞争条件

  • Rust周刊2026W25 | Iroh 1.0 发布、numax v0.1.0 稳定版、zlib-rs 落地 Firefox、processkit 1.0、RustWeek 2026 演讲上线

  • Rust周刊2026W24 | stdx发布、Ratatui 0.30.1、smb2纯Rust客户端、OmniScope 0.2.0、Django→Rust降本90%

  • PHP周刊2026W27 | Symfony 8.1维护版本、Laravel 13.16、CakePHP 5.4 RC2、Filament v4 Beta、PHP基金会Windows构建

  • Web前端周刊2026W27 | TS 7 RC、Expo SDK 57、Node 26.4

  • Java/JVM周刊2026W27 | Spring Boot 3.5.16 终版发布、Quarkus 修复 CVE-2026-50559、Kotlin Toolchain 0.11 Alpha、Eliya OpenJDK 发行版亮相、Spring AI 2.0 结构化输出

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。