警惕:针对知名 Rust 开发者的定向攻击
crates.io 团队与安全响应工作组在 Rust 官方博客发文:目前怀疑存在针对 rust-lang 成员与热门 crate 维护者的持续活动,目标是入侵设备与账号,再用来发布恶意软件。
已观察到的手法是:以招聘、项目或合同等正面理由安排视频通话,再诱导安装“缺失的音频编解码器”等软件,或执行剪贴板上的命令。攻击者会新建看起来正规的公司资料(含看似可信的 LinkedIn)以通过粗略核验。同类攻击在 6 月曾针对多名知名 Rust 开发者;上月 arrayref crate 也曾经类似路径短暂被攻破。是否同属一场活动尚不确定。此类手法已知被朝鲜相关行为体使用,Rust 社区外亦有出现。
建议近期对陌生外联保持警惕;与新联系人通话尽量使用自己信任、最好由自己发起的平台。并复查账号状态:开启 MFA、排查异常登录等。crates.io 账号问题可联系 help@crates.io,其他安全疑虑可联系 security@rust-lang.org。
原文链接:https://blog.rust-lang.org/2026/09/17/targeted-attacks/
Shnatsel:2026 年 Rust SIMD 现状
作者 Sergey “Shnatsel” Davidoff 发布 2026 年 Rust SIMD 综述(约 31 分钟阅读)。相较去年调查更深入;作者去年起为他认为最有潜力的 SIMD 库贡献,现为 Fearless SIMD 维护者。为避免利益冲突,文稿曾邀请 std::simd、wide、pulp、macerator 等作者审阅反馈,最终仍由作者定稿。
文中先回顾 SIMD 动机与各架构扩展(x86 上 SSE2/AVX/AVX-512、ARM NEON、WASM SIMD),以及发行二进制时需函数多版本(multiversioning)、而本机/云上可固定 target-cpu 的差异。编程模型分三类:自动向量化、可移植 SIMD 抽象、平台 intrinsics。自动向量化零依赖但不可靠;浮点方面 Rust 1.98 稳定了 algebraic_add() 等 algebraic ops,使在可改变可观察结果的前提下更易向量化。multiversion crate 用法简单,但标注函数有少量调用开销,适合带循环的函数。
可移植层对比表覆盖 multiversioning、定宽/硬件宽向量、元素与宽度泛型、安全 intrinsics 等,并列出 SSE2 到 AVX-512、NEON、WASM 的支持情况。结论侧:std::simd 仍为 nightly 构建块且偶有破坏性变更;Fearless SIMD 等生态 crate 在多版本与硬件宽向量上更完整。
原文链接:https://shnatsel.github.io/state-of-simd-rust-2026/
Rapier 0.36:游戏向软体(soft-body)物理
Dimforge 的 Sébastien Crozet 介绍 Rapier v0.36.0 加入的软体仿真。Rapier 是用 Rust 写的开源游戏/动画/机器人物理引擎;此前多年以刚体为主,应社区需求加入可变形体(布料、果冻、绳索等)。软体可与现有能力协作:可把各类 ImpulseJoint 接到软体、软体与刚体或 multibody 之间;可挂可变形与不可变形 collider(含 sensor);支持与碰撞/视觉网格分辨率不同的变形 lattice 蒙皮(skinning);也可对软体局部做运动学控制。Web 演示可选 soft-body 相关 demo。
建模上,软体由若干无朝向质点构成,可选边与单元形成 lattice。内聚力有三种路径:shape-matching(无需边/单元,适合无结构点云、大变形后恢复外形)、弹簧约束(边/单元,含 Neo-Hookean 或 Corotated 等,性价比高)、有限元 FEM(更真实、更吃性能,刚度较少依赖求解迭代次数,塑性与撕裂更自然)。2D/3D 分别可用 Delaunay 与 Isosurface Stuffing 等从封闭边界生成体积单元。文中还讨论非凸可变形体的穿透与自相交处理难点,并给出在线 demo 与用户指南入口。
原文链接:https://dimforge.com/blog/2026/09/25/advanced-soft-bodies-for-games-in-the-rapier-physics-engine/
schneems:比“和类型”更强的分量类型
作者 Richard Schneeman 分享路径处理中的类型设计:把 std::path::Component 这类枚举的各个变体拆成独立 owned 结构体(如 NormalComponent(OsString)),再写 AbsPath::join_normal(&self, path: &NormalComponent) -> AbsPath 一类 API。Component 便于分解路径,但接口若接受“任意一种 component”往往过宽;拆成分量类型后,可在类型上保证“来自 Normal、不含 ..、不是绝对路径”等,从而让“已是绝对路径 + Normal 段”的 join 仍保持绝对路径。
作者此前已有 AbsPath、RelativePath、CanonicalPath 等,仍偏宽。路径同时表示词法值与磁盘物理位置,symlink、.. / .、以及 Windows \\?\ 字面查找等都会让“先 normalize 再取 metadata”行为不一致;canonicalize 在 Windows 上还会得到 verbatim 形式,对含 .. 的二次 join 不安全。把枚举变体做成独立类型后,join 安全性提升,也可写出 up(position, name: ParentDirComponent) 这类按 component 逐步走路径的签名。
原文链接:https://www.schneems.com/2026/09/24/a-type-stronger-than-the-sum-of-its-components/
From Rust中文社区 Mike
社区学习交流平台订阅:
评论区
写评论还没有评论