< 返回版块

Mike Tang 发表于 2026-06-20 09:07

Bevy 0.19 发布:BSN 新场景系统与大场景渲染一起升级

Bevy 正式发布 0.19,这次不是小修小补,而是把几个长期铺垫的大块能力一起推到了主线上。官方在 release 里提到,版本背后有 261 位贡献者1185 个 PR,也说明这轮更新的体量确实不小。

这次最值得关注的亮点主要集中在几个方向:

  • 新一代场景系统 BSN(Bevy Scene Notation) 正式落地,开发者可以用更接近 Rust 语法的方式描述 scene,并支持 patch、组合、依赖感知、scene function、scene component 等能力,明显在为后续编辑器与复杂项目工作流铺路
  • 大场景渲染性能继续明显提升。官方给出的 many_cubes 基准里,0.19 相比 0.18 在 160 万 cube 的场景上,把移动 4090 笔记本的帧时间从约 49.47ms 压到 18.77ms;关闭 culling 时也从 93.1ms 降到 41.2ms
  • 图形栈上还补进了 contact shadows、更多 post-processing、改进的 skinned mesh culling、GPU clustering、更多并行化,说明这次不只是“加 feature”,而是持续把引擎往更大规模与更现代的渲染架构推进
  • UI / 工具链侧也有实打实更新,比如 EditableText 上游支持、字体家族与 variable font 属性、更完整的 app settings 框架,以及更多 Feathers widgets

从 Rust 游戏与图形生态的角度看,Bevy 0.19 最有分量的地方,是它一边继续抬高“纯 Rust 游戏引擎”的上限,一边把 scene authoring、编辑器前置能力与大场景性能一起往工程化方向推了一大步。

发布说明:https://bevy.org/news/bevy-0-19/ 项目仓库:https://github.com/bevyengine/bevy Migration Guide:https://bevy.org/learn/migration-guides/0-18-to-0-19/

原文链接:https://bevy.org/news/bevy-0-19/

Ratatui 0.30.2 发布:新增 Termina backend,并修正 Send/宽字符回归

Ratatui 发布了 0.30.2。虽然这是个 patch 版本,但这次更新不是单纯补 bug,而是顺手补进了一个对终端生态挺有意思的新能力:新增 ratatui-termina backend

这次更新的关键点包括:

  • 新增 Termina backend,通过 termina feature 暴露,意味着 Ratatui 在现有 Backend 抽象下又多了一条终端后端接入路线,现有 widget / app 架构基本不用改就能复用
  • 修复了 0.30.1 block shadows 引入的回归:某些 widget 因内部 custom shadow effect 存储方式,意外失去了 Send / Sync 语义,导致下游多线程 TUI 应用直接编译报错;0.30.2 把这个兼容性问题修回来了
  • 修正了 宽字符覆盖后的残留单元格刷新问题。像“你好,世界!”切成 “Hello” 这类场景里,旧的 trailing cell 背景可能残留;这次补丁把这些终端显示细节也处理干净了
  • 另外还修了 大 scrollbar thumb 挤掉末端箭头 的 UI 回归,并把 cargo-udeps 依赖检查纳入 CI

这类版本的价值点在于:它未必像大版本那样显眼,但很能说明项目成熟度。Ratatui 现在已经不只是“能做 TUI”,而是在认真打磨 后端扩展性、线程语义稳定性、宽字符显示细节 这些真正影响生产体验的地方。

发布说明:https://ratatui.rs/highlights/v0302/ 项目仓库:https://github.com/ratatui/ratatui 变更记录:https://github.com/ratatui/ratatui/blob/main/CHANGELOG.md

原文链接:https://ratatui.rs/highlights/v0302/

Safe SIMD in Rust:把“高性能”里的 unsafe 收到几乎只剩一个可审计入口

作者在新文里讨论了一个很 Rust、也很底层的问题:高层 SIMD 抽象到底能不能既保住性能,又别把大量 unsafe 藏在库内部到处流窜? 这篇文章给出的答案相当漂亮,而且已经落到生产实现里。

文章的核心思路有几层:

  • 先利用 Rust 1.87 之后编译器对 #[target_feature] 的改进,把不少 intrinsic 调用从“每处都得包 unsafe”推进到“可以在带 feature 标注的函数里安全调用”
  • 再通过 CPU feature token 把“当前机器确实支持 AVX2 / 其他指令集”这个前提编码进类型系统,让调用者拿到一个零成本、不可伪造的证明
  • 然后把真正需要的 unsafe 集中封装进单个可复查的包装层 / 宏,避免过去那种到处手写 target feature 对照与 unsafe wrapper 的做法
  • 在 API 层再借助 泛型 + level token,把运行时指令集选择与 a + b 这类高层操作统一起来,最后落到 fearless_simd 这类更像“正常 Rust”而不是“intrinsics 手工活”的接口上

作者也没有回避现实限制:#[target_feature]inlining / ABI 的关系,依然让“既优雅又零额外开销”的 SIMD 抽象有不少边角问题,尤其是运算符重载场景里仍然很依赖内联是否成功。

但即便如此,这篇文章最重要的意义仍然是:它把 Rust 里 SIMD 抽象的安全边界重新往前推了一截,让“高层 SIMD 库内部堆满难审计 unsafe”不再像过去那样理所当然。

文章链接:https://shnatsel.medium.com/safe-simd-in-rust-even-on-the-inside-c6f1ff381828 crates.io:https://crates.io/crates/fearless_simd 示例代码:https://github.com/linebender/fearless_simd/blob/d2411665f0726cd6c09bd6fd98af4af18e3c1778/fearless_simd/examples/sigmoid.rs

原文链接:https://shnatsel.medium.com/safe-simd-in-rust-even-on-the-inside-c6f1ff381828

Carboxyl 0.1.0-rc:把终端浏览器从 Chromium 补丁路线上转向 Servo 运行时

Carboxyl 团队发布了一个早期 0.1.0-rc,但这次真正值得关注的不只是“有了个 RC”,而是它正在尝试把项目的底层路线改掉:从原来基于 Carbonyl 的 Chromium patch runtime,转向 直接嵌入 Servo 的新运行时。

作者在说明里讲得很直接:

  • Carboxyl 是 Carbonyl 的社区分叉,目标仍然是把“现代网页浏览器”塞进终端里,而不是退回到纯文本浏览体验
  • 这次 RC 主打的是 servo-dev 分支 的新运行时验证。项目希望用 Servo 替掉原来带补丁的 Chromium 方案,从而让构建、维护与贡献门槛都更低
  • 新路线强调通过 Servo 的软件渲染路径 面向 terminal-first 场景,这意味着它在理念上不只是“把网页降级显示到终端”,而是继续追求尽量完整的现代 Web 能力
  • 从 Carboxyl 既有仓库介绍看,这条产品线一直强调 支持大量 Web API、60 FPS、低 idle CPU、可在无窗口服务器 / SSH 场景下运行;如果 Servo 路线最终跑通,项目的长期可维护性会比继续扛 Chromium 私有补丁更有想象空间

终端浏览器一直是个很容易“看着很酷但不好持续维护”的方向。Carboxyl 这次的看点,不只是 demo 感,而是它试图把一个炫技项目往更可持续的浏览器内核整合路线上推。

Reddit 说明:https://old.reddit.com/r/rust/comments/1uadj48/carboxyl_v010rc_a_servobased_browser_for_the/ 项目仓库:https://github.com/carboxyl-rs/carboxyl 原始 Carbonyl 背景文:https://fathy.fr/carbonyl

原文链接:https://old.reddit.com/r/rust/comments/1uadj48/carboxyl_v010rc_a_servobased_browser_for_the/

评论区

写评论

还没有评论

1 共 0 条评论, 1 页