Everyone's favorite Unix init system is adding support for the Unix world's favorite new programming language. What's the worst that could happen? Don't worry, this isn't here just yet. Agent P and his trusty team released systemd version 262 about a month ago. That means that systemd 263 is now under construction, and developer Christian Brauner announced on Mastodon that his new feature has been merged. The previous effort, which was pull request #44144, has now been split into five separate parts. Part 1 contains keyring-util and voa-util, described as "helpers for enrolling certificates into kernel keyrings." Part 2, support programs written in Rust, is the banner item. Then come a few more: bind only the headers Rust code uses, wrap the libsystemd-shared helpers systemd-keyring-setup needs, and finally, add systemd-keyring-setup. There are several important riders to the announcement, and these are spelled out in the second PR: "Rust is only used for new leaf components. Existing C code isn't ported and nothing that other components depend on is written in Rust." In other words, before anyone gets too excited, this does not indicate the start of an effort to rewrite systemd in Rust. All it means is that new systemd modules can be written in Rust. The second bullet point will be more significant for existing Rust developers: "No cargo. Everything is built with meson." Cargo is the Rust language’s package manager and build system. It's the normal way to build Rust applications, as well as to distribute modules of Rust code for other Rust developers to use. However, systemd already has a modern build system. It's called Meson and it's not unique to systemd – it is also used extensively by the GNOME project and the Mesa 3D graphics library. Meson itself is written in Python and uses Ninja to manage the compilation process. Ninja was designed to build Chrome faster, and it's also used for Android. The third stipulation is that any Rust code must not use the standard library. For those more familiar with C, this may sound extreme, but it's normal for embedded Rust programming. The project documents the system requirements. It needs Rust version 1.85 or later. That's modest: that version was released in February 2025, and version 1.99.1 appeared earlier this month. It also calls for bindgen version 0.71.1 (from December 2024) or newer, and Meson 1.4.0 (from March 2024). These are relatively old versions – for instance, it's the Meson version included in Debian 13). Brauner added an interesting little coda in a second Masto post: saying that the team would have liked to support Rust in the core of systemd, but currently, Rust’s support for dynamic libraries isn't quite there yet. It's perhaps worth noting that writing systemd modules in Rust isn't the same thing at all as calling systemd from Rust code. There are several tools for doing that, and they have been around for years: for example, the systemd crate first appeared in 2015. ®