systemd Merges Support for Rust Programs
The init system's latest change lets new standalone components be written in Rust while the core stays in C.
Updated on Nov. 5, 2026 in Software

systemd has merged support for writing its programs in Rust, with systemd-keyring-setup becoming the first program written in the language. The support landed on the main branch through a pull request of 19 commits that follows rules agreed upon at a hackfest in Berlin.
Why it matters
The change lets the widely used Linux init system bring memory-safe code into its tooling without disturbing its C codebase. Rust remains optional, so systemd can still be built without it.
The merged pull request comprises 19 commits and requires rustc 1.85, bindgen 0.71.1, and meson 1.4.0 or newer to build Rust programs. Rust code is limited to new standalone programs that nothing else depends on, and only the core and libc crates are allowed.
The players
systemd
systemd is the init system and service manager used by many Linux distributions to start and supervise system processes.
The details
Rust programs must behave like their C counterparts, verified by a test for programs that declare the same command, and use systemd's own Box and Vec types so a failed allocation returns an error instead of panicking. The shared library libsystemd-shared stays in C because Rust has no stable ABI, and systemd looks up paths through file descriptors rather than Rust's standard path handling.
Timeline
Late last year: Kernel maintainers declared the Rust experiment in the Linux kernel over.
2027: Adoption of Rust is expected to accelerate as the Linux ecosystem moves into the year.
Tech Race
systemd's merge follows Rust's entry into the Linux kernel with version 6.1 as an exploratory effort, which kernel maintainers declared over late last year. Ubuntu's switch to sudo-rs and uutils coreutils as default tools shows the same push toward Rust in core Linux utilities.
Linux users building systemd from source will need rustc 1.85, bindgen 0.71.1, and meson 1.4.0 or newer if they want the Rust programs enabled. Builds without Rust continue to work as before, so existing setups are unaffected.
The takeaway
Rust is spreading into Linux system software one optional, standalone tool at a time, rather than through wholesale rewrites. Developers maintaining Linux tooling can watch how systemd's approach of keeping the core in C while adding Rust at the edges plays out.
Further reading
For more on the tools behind this change, see the Software section.
Source note: This article includes information reported by It's FOSS.







