【Rust日报】2026-10-27 systemd 给自身组件加 Rust 支持

💡 原文中文,约4500字,阅读约需11分钟。
📝

内容提要

本期简讯:systemd 提交 PR,为自身组件增加可选 Rust 构建支持,默认 auto,需 rustc 1.85、bindgen 0.71.1 以上,使用 core 而非 std,并生成 libsystemd-shared 的 FFI 绑定。Rust 官方博客介绍资助贡献者的三条途径:维护基金、Project Goals 和 GitHub Sponsors。另有桌面猫 Catsor 与体素世界 Ochre 两个 Rust 项目分享。

🔎

延伸解读

systemd 引入 Rust 的边界与约束

systemd 的 Rust 支持目前仅限自身组件,且默认 auto,需 rustc 1.85 和 bindgen 0.71.1 以上。核心库 libsystemd-shared 等仍用 C,Rust 程序通过 FFI 绑定动态链接,使用 core 而非 std,无外部 crate。构建时探测 libclang 版本,避免 bindgen 0.72.0 的编译问题。交叉编译尚未支持,老版本 meson 会自动关闭 Rust 支持。

Rust 贡献者资助的三条路径

官方博客列出资助 Rust 贡献者的方式:一般维护捐给 Rust Foundation Maintainers Fund 或赞助 RustNL Maintainers Team;具体功能改进可联系 Project Goals 的 funding contact;个人贡献者可通过 GitHub Sponsors 资助。公司还可加入免费的 Rust Commercial Network 寻找定向资助机会。文章指出目前仅部分贡献者获得资助,但 allocator、trait solver 等项目已有进展。

Catsor 的跨平台实现与限制

Catsor 用路径绘制桌面猫,骨架由 12 个节点和 4 只爪子组成,每帧用 tiny-skia 渲染。它支持 Linux/X11 和 Windows,点击穿透分别通过 XFixes 输入区域和 layered window 实现。限制是尚无原生 Wayland 支持,因 Wayland 不允许应用随意置顶或读取全局光标位置;X11 下透明效果需合成器。作者建议 Sway 等合成器可通过 wlr-layer-shell 实现。

Ochre 的体素世界规模与性能

Ochre 是一个 64km × 64km 的确定性体素世界,地形流式加载,远处用 LOD 网格并交叉淡入。默认视距下地平线弯曲到 16km,高度升高后可达 32km。它包含侵蚀、水文、气候、昼夜和天气系统。作者在 RTX 2060 上以 1440p 测试 32km 视距,地形生成和网格化在 Ryzen 7 9800X3D 上很快。渲染基于 Bevy 管线,自定义着色器用于云、水和植被摆动。

❓

Q&A

systemd 的 Rust 支持 PR 对构建工具有什么要求?

需要 rustc >= 1.85、bindgen >= 0.71.1,以及 meson 1.4.0 来接入 rust 模块的 bindgen()。bindgen 0.72.0 会生成编不过的代码,被拒绝。

systemd 中哪些部分仍然用 C 写,Rust 程序如何与它们交互?

libsystemd-shared、libsystemd、NSS 和 PAM 模块继续用 C。Rust 程序和 C 程序一样动态链接 libsystemd-shared,并通过 bindgen 生成的 FFI 绑定调用其导出的函数、类型和常量。

Rust 官方博客提到的资助贡献者途径有哪些?

三条路:一般维护可捐给 Rust Foundation Maintainers Fund 或赞助 RustNL Maintainers Team;具体功能改进可查看 2026 年 Rust Project Goals 并联系对应 funding contact;个人贡献者可捐到他们的 GitHub Sponsors。

Catsor 这只桌面猫是如何实现动画和交互的?

猫没有精灵图,骨架由世界坐标中的 12 个节点和 4 只着地爪子组成,每帧先解脊柱和尾巴,再用 tiny-skia 以路径绘制身体。爪子按四拍走、小跑和旋转奔跑步态。晃光标它会跟踪并扑,甩鼠标它会跑过来,放着不管会趴下睡着。

Catsor 在 Linux 上支持 Wayland 吗?有什么限制?

还没有原生 Wayland 支持。X11 下需要合成器才能透明。作者在评论中提到 Wayland 不让应用随便画置顶层,也不让随便读全局光标位置,Sway、Hyprland 一类合成器可通过 wlr-layer-shell 实现,作者将其放在前面。

Ochre 这个体素世界项目的地形和视距是怎样的?

世界是 64km × 64km,生成确定。地形绕玩家流式加载,远处用更粗的 LOD 网格并交叉淡入。默认视距下弯曲地平线到 16km,高度升高后到 32km。

🏷️

标签

➡️

继续阅读