< 返回版块

苦瓜小仔 发表于 2025-07-09 21:58

Tags:日报

This Month in Rust OSDev: June 2025

主编:phil-opp

6 月使用 Rust 开发操作系统的情况和资讯。

阅读:https://rust-osdev.com/this-month/2025-06/

PLDI'25 - 《Tree Borrows》 - 杰出论文奖

经过数年的努力,Tree Borrows 论文终于在首尔的 PLDI 2025 上正式发表。

与之前在本博客和 Neven 网站上提到的相比,Tree Borrows 并没有太大变化。

我们利用这些额外的时间进行了形式化证明 ,证明 Tree Borrows 确实能够实现我们希望实现的一些优化,并在 crates.io 上下载次数最多的 3 万个 crate 上对 Tree Borrows 进行了广泛的评估。

这套完整的实现、证明和评估方案给 PLDI 程序委员会留下了深刻的印象,我们因此获得了杰出论文奖。

RustWeek 演讲:MiniRust - 指定 Rust 规范的核心语言

演讲者:Ralf Jung

介绍 MiniRust 以及围绕它的一系列研究和开发计划。

MiniRust 是我对 Rust 语义规范化愿景的基石。它是一种理想化的类似 MIR 的语言,旨在成为 Rust 的“核心语言”。

这属于一个更大目标的一部分,其目标是精确地指定 Rust 的操作行为,即 Rust 程序在执行时可能具有的行为。Rust 程序的行为定义如下:首先将其翻译成 MiniRust,然后考虑本文档中指定的 MiniRust 程序可能具有的行为。

这种翻译工作量很大。例如,在 MiniRust 层面上,特征和模式匹配基本上已经消失。另一方面,MiniRust 非常关注细节,例如精确的求值顺序、数据表示,以及什么是未定义行为,什么不是。

仓库:https://github.com/minirust/minirust

文章《使用 CGP 编写可扩展数据类型:模块化解释器和可扩展的访问者模式》

作者:Soares Chen

本文是 Rust 中 Context-Generic Programming(CGP)系列第二篇,重点介绍如何利用**可扩展变体(extensible variants)可扩展访问者模式(extensible visitor pattern)**构建模块化解释器。

作者通过一个玩具数学表达式语言示例,展示了如何将表达式结构(如加法、乘法)与操作逻辑(如求值、转换为 Lisp)解耦,实现高度可组合、可扩展的代码架构。

CGP 通过 ComputerComputerRef trait 实现无副作用的纯计算逻辑,并支持基于类型(如 EvalToLisp)的代码级分发,从而优雅解决“表达式问题”。

文章还展示了如何通过泛型抽象(如 BinaryOpToLisp)减少重复代码,并支持语言的无缝扩展(如添加减法、取反)。

CGP 的设计使得新增表达式或操作无需修改现有代码,兼顾了类型安全与灵活性,为构建可维护的语言处理器提供了强大工具。

阅读:https://contextgeneric.dev/blog/extensible-datatypes-part-2/

Reddit:https://www.reddit.com/r/rust/comments/1lvgyre/building_modular_interpreters_and_visitors_in/

文章《Rust Web 框架中的最佳错误处理经历》

作者开发 Rust Web 框架 Cot 时,致力于实现最佳错误处理机制,要求错误处理器易于编写、访问完整请求信息、统一处理流程,并兼容中间件。

然而,使用 tower_http 中间件会消耗请求所有权,导致错误处理器无法访问原始请求。

作者比较了多种解决方案,包括放弃 tower_http、克隆请求或修改其设计,最终选择克隆请求头以兼顾性能与兼容性,同时反思了当前 Rust Web 框架在错误处理上的不足。

阅读:https://mackow.ski/blog/towards-rust-web-best-errors/

文章《能使用 Wasmtime 构建网络脚本引擎吗?》

作者:Wu Yu Wei

作者探讨了使用 Wasmtime 构建 Web 脚本引擎的可能性,回顾了 Servo 社区曾考虑替代 SpiderMonkey 的经历。

随着 Wasmtime 支持 GC,作者提出以 WebAssembly 组件模型和 WIT 定义 DOM 接口,通过 Resource 类型实现跨语言互操作,构建安全、可扩展的脚本引擎,并展示了初步实现与未来计划。

阅读:https://wusyong.github.io/posts/wasmtime-script-engine/

RapidRAW:GPU 加速的高性能 RAW 图像编辑器

RapidRAW 是一款由 18 岁开发者 Timon 打造的高性能 RAW 图像编辑器,旨在成为 Adobe Lightroom 的轻量级替代品。

它基于 Rust 和 Tauri 构建,利用 GPU 加速和自定义 WGSL 着色器实现快速图像处理,支持 Windows、macOS 和 Linux 平台,体积不足 30MB。

RapidRAW 提供非破坏性编辑、AI 智能遮罩、生成式 AI 图像修补(通过 ComfyUI 后端)、丰富的调色工具和高效的图像管理功能。

仓库:https://github.com/CyberTimon/RapidRAW

Reddit:https://www.reddit.com/r/rust/comments/1lvhwnz/rapidraw_a_raw_photo_editor_written_in_rust/

AutoAgents:开源 AI 代理框架

AutoAgents 是一个基于 Rust 和现代大语言模型(LLM)构建的多智能体框架,支持多种 LLM 提供商(如 OpenAI、Claude、Ollama 等),并提供简洁的 API 用于构建智能体、调用工具、管理记忆和执行任务。

通过示例展示了如何创建一个天气查询智能体,使用工具获取城市温度并回答用户问题。

演示:https://youtu.be/MZLd4aRuftM?si=XbHitYjgyffyOf5D

仓库:https://github.com/liquidos-ai/AutoAgents

google-cloud-rust:Google Cloud 的 Rust 客户端 API

仓库:https://github.com/googleapis/google-cloud-rust

Toml 库:重写并发布 v0.9

TOML v0.9 是一次几乎完全重写的版本,带来了显著的性能提升、对 no_std 的支持以及众多改进。

该版本的主要目标是优化性能,尤其是为了满足 Cargo 在解析大量 Cargo.toml 文件时的需求。

通过引入新的解析架构,TOML v0.9 在保持与 serde 兼容的同时,显著降低了解析时间,甚至在某些场景下接近 serde_json 的性能。

此外,TOML v0.9 还改进了错误恢复机制,支持更大的整数类型,并提供了更灵活的解析选项,以适应不同的使用场景。

该版本还整合了 toml_edit 的功能,统一了 TOML 的解析和编辑能力,减少了生态系统中多个解析器并存的问题。

总的来说,TOML v0.9 不仅在性能上取得了突破,还在功能和兼容性上进行了全面的提升,为 Rust 生态系统中的配置管理提供了更强大的工具。

阅读:https://epage.github.io/blog/2025/07/toml-09/

仓库:https://github.com/toml-rs/toml

Reddit:https://www.reddit.com/r/rust/comments/1lutvax/toml_v09/

--

From 日报小组 苦瓜小仔

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页