Do kódové základně systémového správce systemd bylo přijato změny, které umožňují vytváření komponentů v jazyce Rust. Rust má být použit pouze pro vývoj nových komponentů, a existující kód v jazyce C nebude přepisován na Rust. Balíčkový manažer cargo při sestavení nepoužívá, zapojuje se pouze systém sestavení Meson. Kód Rust se používá v režimu „no_std“ (bez standardní knihovny), jsou povoleny pouze knihovny core, alloc a libc.
Komponenty systemd na Rust se dynamicky spojují s C-knihovnou libsystemd-shared. Rustové obálky nad libsystemd-shared jsou automaticky generovány během sestavení z hlavičkových souborů pomocí nástroje bindgen a stávají se dostupnými pro rustové programy ve formě balíčku systemd_shared. Pro práci je vyžadována alespoň verze rustc 1.85 a bindgen 0.71.1, odpovídající verzím z Debianu 13.
Testovací spustitelný soubor na Rust při sestavení s LTO optimalizacemi zabírá 32 kB, zatímco ekvivalent v C zabírá 20 kB. Podpora Rust je ve výchozím nastavení povolena pouze při přítomnosti odpovídajícího rustového nástroje v systému (-Drust=auto). Prvním komponentem napsaným v Rustu je systemd-keyring-setup, který zatím nebyl přijat do hlavní kódové základny systemd. Systemd-keyring-setup slouží k nastavení a správě X.509 certifikátů pro mechanismy jádra Linux dm-verity, fs-verity a bpf.
Zdroj: opennet.ru
