systemd allows Rust for new leaf components, likely from v263
The systemd project has added support for writing leaf components in Rust, LWN reports. The scope is deliberately narrow. Only new components at the edge of the system may use the language; the existing C code base stays as it is, and no library or service that other parts of systemd rely on will be written in it.
The developers would like Rust in the core as well, but say the language's handling of shared libraries is not ready: doing it today would make every binary the project ships much larger. If the work goes as planned, it is likely to ship in systemd v263, expected in December.
Discussion under the LWN item, including from a systemd developer, points to why the project prefers its own internal library over parts of Rust's standard library and common crates: allocator panics are considered inappropriate for system daemons, and the project's own code already handles path traversal in a way it regards as safe for an init system. Other commenters argued that avoiding external crates entirely is impractical, pointing to crates that already wrap openat and related calls.

What it means
Leaf components are the cheapest place to introduce a second language: if one fails or is rewritten, nothing else in the system breaks. The stated blocker — dynamic linking — is the real constraint for a project that ships many small binaries sharing one library, and it is a Rust ecosystem problem rather than a systemd decision. For distributions, the practical effect from v263 is a Rust toolchain in the build dependencies.