视频:使用 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 编译器的主要贡献包括:
- 性能优化:负责性能路线图,优化热门 crate 编译速度,减少
derive
特性编译时间,实现-Zmacro-stats
标志并优化 Bevy 的宏代码。 - 代码清理与重构:重构编译器错误生成 API,移除旧设计和废弃功能,简化代码结构。
- 功能改进:优化宏扩展,提升性能并简化代码。
- 社区贡献:维护《【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 日报小组 苦瓜小仔
社区学习交流平台订阅:
评论区
写评论还没有评论