< 返回版块

苦瓜小仔 发表于 2025-06-30 10:55

Tags:日报

LWN 文章《如何在内核中用 Rust 编写驱动 2》

作者:Daroc Alden

这篇文章是关于如何在 Linux 内核中用 Rust 编写驱动程序的第二部分。

文章通过对比 Rust 和 C 语言在编写 Asix AX88796B 驱动程序时的语法、类型和 API 的使用,展示了两者之间的差异。

文章详细介绍了 Rust 的模块化、类型系统、宏的使用以及错误处理机制,并通过一个实际的软重置函数示例,展示了 Rust 在内核编程中的优势和特点。

阅读:https://lwn.net/SubscriberLink/1025232/fbb2d90d084368e3/

Reddit:https://www.reddit.com/r/rust/comments/1lnhc47/how_to_write_rust_in_the_linux_kernel_part_2/

Rust:重写 1.0 之前的声明宏解析代码

macro_rules! 的解析器被重写,改用简单的循环代替复杂的 MBE引擎。

这使得解析器更易读、更易扩展,错误信息也更清晰。例如,省略分号时会提示“expected ;”和“unexpected token”,而不是令人困惑的“no rules expected this token in macro call”。

这也将使得改进宏解析成为可能,以处理诸如 RFC 3697 (通过声明宏支持属性宏 #[attr_macro])和 3698 (通过声明宏支持 derive 宏 derive(Trait)) 等新功能。

PR:https://github.com/rust-lang/rust/pull/143070

Reddit:https://www.reddit.com/r/rust/comments/1lnh4us/rewriting_pre10_compiler_code_for_better_macro/

文章《Rust 中的错误处理》

作者:felix-knor

文章讨论了 Rust 中错误处理的现状和问题。

传统的错误处理方式是为每个模块或整个 crate 定义一个错误枚举,这会导致函数返回的错误枚举包含其无法产生的错误变体。

作者提出了一种替代方案,即使用结构体表示错误,并通过宏生成错误集和自动转换实现。这种方法更灵活,但需要手动处理错误集的联合和转换。

作者还提到了一些探索这一范式的库,如 error_setSmartErr

阅读:https://felix-knorr.net/posts/2025-06-29-rust-error-handling.html

Reddit:https://www.reddit.com/r/rust/comments/1lnbr0g/on_error_handling_in_rust/

Flecs:发布 v4.1 - ECS 库

Flecs 是一个快速的 C/C++ 实体组件系统(ECS),并支持 Rust 绑定

新版本在性能上显著提升,如组件获取速度提升 5 倍,缓存查询迭代速度提升 4 倍等。

新增非碎片化组件存储,支持稀疏集设计,优化了内存使用。还改进了 Flecs Script,增加了新功能和性能提升。

此外,引入了查询布隆过滤器,优化了缓存查询的评估速度。

Flecs 4.1 还支持世界本地组件 ID,简化了多世界开发。

根据其作者的测试结果,Flecs 在大多数 基准测试 中都优于 Bevy。

仓库:https://github.com/SanderMertens/flecs

Reddit:https://www.reddit.com/r/rust/comments/1lntbxt/flecs_v41_an_entity_component_system_for_cccrust/

Klirr:自动化发票的程序

Klirr 是一个用 Rust 和 Typst 编写的自动化发票解决方案。

它支持一次性配置公司、客户和项目信息,自动计算工作天数和汇率,生成维护免费的发票。

Klirr 的发票编号基于当前月份,每月自动递增,支持多布局和多语言(目前支持英语和瑞典语)。它还支持添加费用、标记休假月份等功能。

Klirr 使用 RON 格式存储数据,可通过交互式终端界面进行配置,生成的发票可保存为 PDF 文件。

仓库:https://github.com/Sajjon/klirr

Reddit:https://www.reddit.com/r/rust/comments/1lnkpi7/klirr_invoice_automation_tool_written_on_rust/

--

From 日报小组 苦瓜小仔

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页