< 返回版块

苦瓜小仔 发表于 2025-07-20 16:50

Tags:日报

视频:使用 MicroBit v2 实现空气质量监测(第三部分) - 蓝牙连接手机共享数据

在我们的空气质量监测项目中,最终的挑战是蓝牙低功耗(BLE):今天的目标是通过无线方式将二氧化碳浓度(PPM)与运行在 iPhone 上的应用程序共享,使用嵌入式 Rust……还有……一些 C 语言?

观看:https://www.youtube.com/watch?v=L1ScupSwqts

仓库:https://github.com/therustybits/moxi

Rerun:数据库和可视化工具箱,适用于多模态和时态数据

Rerun 是一个易于使用的数据库和可视化工具箱,适用于多模态和时态数据。

它使用 Rust 编写,并使用了 wgpu 和 egui。您可以访问 https://rerun.io/viewer 进行在线试用。

Rerun 0.24.0 是一个多方面改进的版本,主要亮点包括:

  • 数据模型改进:从 0.22 开始引入的组件标签功能最终完成,现在可以在同一实体路径上多次记录相同组件类型,而不会相互覆盖。
  • 视频流支持:新增 VideoStream 架构,支持将编码后的视频流(如 H.264)直接记录到 Rerun,而不再局限于 MP4 文件。
  • 多输出支持:SDK 的记录流现在可以同时发送到多个目标,例如同时向 Viewer 和文件输出。
  • 内置 URDF 数据加载器:可以直接通过 log_file API 记录 URDF 文件。
  • 性能提升:改进了 .rrd 文件的压缩和自动压缩功能,提升了性能和质量。
  • UI 改进:新增浅色模式,主题默认跟随系统设置,但可在设置菜单中调整。
  • 其他改进:包括新的 Cylinder 架构、AnyValues 工具(Rust)、rerun rrd stats 命令用于获取 .rrd 文件的统计信息等。

仓库:https://github.com/rerun-io/rerun

cargo-fixit:一个更快、更灵活的 cargo fix 实验

@Pyr0de 一直在努力为 cargo fix 提供更快的替代设计。

为了避免出现错误, cargo fix 会将构建工作区成员的 crate 序列化。即使在中等规模的工作区中,这也会使其速度慢到无法使用。

cargo fixit 尝试通过允许构建并行进行来加快速度,但一次只能修复一个 crate,如果还有更多 crate 需要修复,则重新运行构建。

如果修复的 crate 过多,速度可能会变慢,但我们目前尚未遇到这种情况。而且,我们有一些可以轻松实现的性能改进!

目标是在 cargo fix 中更快地完成这些事情。cargo fixit 在树外进行实验是评估这一点以及它们在性能和功能上有何差异。

仓库:https://github.com/crate-ci/cargo-fixit

Reddit:https://www.reddit.com/r/rust/comments/1m38rmj/cargo_fixit_an_experiment_for_a_faster_more/

基于 WebAssembly 组件模型的 REPL,带有沙盒多语言插件系统

WebAssembly 组件模型非常有前景,但现有的示例要么太简单,要么太复杂。

我创建了一个项目来展示它的强大功能,它不仅仅是一个简单的 Hello World。它是一个带有插件系统的基本 REPL,你可以在其中运行用任何可编译为 WASM 的语言编写的插件:

  • 相同的插件可以在 CLI 和 Web 实现中使用
  • 插件默认处于沙盒状态(实现了类似 Deno 的安全模型)
  • REPL 逻辑本身被编译为 WASM,就像插件一样,你可以交换它的实现
  • 一些可用的内置插件,其中一些用于演示对文件系统和网络的访问

仓库:https://github.com/topheman/webassembly-component-model-experiments

Nicholas Nethercote - Rust 编译器优化专家的主要贡献

Nethercote 在历届人类贡献者名单中排名第 14 位,该名单可追溯到 2010 年;如果时间限制为最近两年,并排除合并提交,他排在第 4 位。

Nicholas Nethercote 在 Rust 编译器的主要贡献包括:

  1. 性能优化:负责性能路线图,优化热门 crate 编译速度,减少 derive 特性编译时间,实现 -Zmacro-stats 标志并优化 Bevy 的宏代码。
  2. 代码清理与重构:重构编译器错误生成 API,移除旧设计和废弃功能,简化代码结构。
  3. 功能改进:优化宏扩展,提升性能并简化代码。
  4. 社区贡献:维护《【Rust 性能手册】(https://nnethercote.github.io/perf-book/)》,分享优化经验。

文章罗列了更多他在 Rust 编译器上的工作结果。 (他在 Futurewei 结束了 3.75 年的全职维护 Rust 编译器工作,正寻找新的机会)

阅读:https://nnethercote.github.io/2025/07/18/looking-for-a-new-job.html

Reddit:https://www.reddit.com/r/rust/comments/1m3u81a/i_am_a_rust_compiler_engineer_looking_for_a_new/

嵌入式教程:在 RP2040 上使用 Rust,简要的设置指南和基础知识背景

仓库:https://github.com/Riceman2000/rust-embedded-course

讨论:如果 Rust 与 CHERI 结合会怎样?

CHERI (硬件增强型 RISC 指令)彻底改变了计算机架构,可以让隐藏在 C/C++ 中的内存错误被操作系统精准捕获。

如果将其与 Rust 结合起来会怎样?

“目前正在努力使 CHERI 与 Rust 协同工作。CHERI 领域已经从应用处理器(早期工作主要基于实验性的 Arm Morello 平台,面向浏览器和 FreeBSD 内核)转向了微控制器领域——例如基于 RISC-V Ibex 并支持 CHERI 的 CHERIoT。Rust 在这个平台上还处于非常早期的阶段。

我参加过许多会议,CHERI 利益相关者一直在讨论如何推动平台的发展,而 Rust 始终是这些讨论的重要组成部分。实际上,要实现一个完整的、具有商业可行性的平台(包括 RTOS、Rust 支持和良好的用户空间)还需要几年时间。”

“一方面,Rust 是 CHERI 用处最小的系统编程语言之一。Rust 的大部分代码都是安全代码,而 CHERI 并不会给安全代码带来任何好处,同时还要付出额外开销(x2 指针)。

另一方面,Rust 的基础是建立在 unsafe 代码之上的。现在,我个人希望看到更多工作来证明 unsafe 代码的可靠性;尤其是在其之上构建契约和形式化验证。编译时保证代码的可靠性非常重要。除此之外,MIRI(或者 MiniRust?)、loom、模糊测试等等……可以大大提高确保代码可靠性的几率,但这取决于测试的质量,因此并非万无一失,这为运行时强制执行留下了空间。”

--

From 日报小组 苦瓜小仔

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页