News › linux
By The Linux Camp News, October 27, 2026
The optional build support keeps systemd's C shared-library architecture. Distribution builders need to check toolchain dependencies, especially when enabling all automatic features.
Systemd has merged PR #44324, establishing support for new programs written in Rust, according to sources retrieved October 27, 2026. The scope is deliberately narrow: only leaf components, meaning programs that other components do not depend on. Existing C code is not being ported, and shared core components are outside this change. The related maintainer PR explicitly records #44324 as merged; the retrieved material does not establish its exact merge date. 3 1
This is not a conventional Cargo-based Rust project. Meson builds the programs, and Rust code uses no_std, excluding the Rust standard library. Brauner also describes a departure from the usual allocation collections: because those abort when memory runs out, systemd_shared supplies its own Box and Vec types whose allocations return errors instead. That makes allocation failure something the program can handle rather than an automatic abort. 2
The linking boundary remains C. Rust programs dynamically link libsystemd-shared just as C programs do, while Rust crates are linked statically into the executables that use them. Dependencies loaded through dlopen remain declared in .note.dlopen. Consequently, adding Rust programs does not replace the existing shared-library machinery or put the Rust standard library into libsystemd-shared. 2
Bindgen generates bindings, the interface Rust uses to call C code, from the library's build-time headers and flags. The systemd_shared wrapper then supplies familiar error handling, logging and command-line conventions. For engineers integrating command-line tooling, the intended benefit is consistency rather than a new interface: Brauner says test-cli-parity.sh checks help output, option parsing and CLI introspection byte for byte. That is a maintainer-described test, not independent verification of every Rust program. 2
Distribution and image builders should check their build-tool versions before enabling the support. As documented in the PR retrieved October 27, Rust builds require rustc 1.85 or newer, bindgen 0.71.1 or newer and Meson 1.4.0 or newer. Systemd retains its existing minimum Meson version: on older Meson, -Drust=auto switches Rust support off rather than raising the requirement for every build. 2
Also inspect packaging that forces automatic features on. Brauner reported Arch and openSUSE OBS build failures because their packaging used --auto-features=enabled without providing rustc and bindgen. His stated remedies are to add both build dependencies or select -Drust=disabled. The reason to check the recipe, not just the tool versions, is that forcing features on removes the option to omit this support automatically. The retrieved report does not establish whether those packaging failures remained unresolved on October 27. 2
Core Rust support remains a separate ambition. LWN quotes Brauner attributing the restriction to blockers in Rust dynamic-library support that would otherwise substantially inflate binaries; the report does not explain those blockers further. Release availability is also unsettled in the October 27 source snapshot: LWN tentatively places the work in systemd v263, expected in December. That is a forecast, not confirmation of a released version or a firm inclusion commitment. 1