U kodnoj bazi sistemskog menadžera systemd usvojena je promjena, dodajući mogućnost kreiranja komponenti u Rustu. Rust je namijenjen samo za razvoj novih komponenti i ne postoje planovi za prepisivanje postojećeg C koda u Rustu. Upravitelj cargo paketa se više ne koristi u procesu izgradnje, a ostao je samo Meson sistem izgradnje. Rustov kod se koristi u "no_std" modu (bez standardne biblioteke), a dozvoljene su samo biblioteke core, alloc i libc.
Komponente systemd Rust su dinamički povezane s C bibliotekom libsystemd-shared. Rust povezivanja za libsystemd-shared se automatski generiraju u vrijeme izgradnje iz zaglavnih datoteka pomoću uslužnog programa bindgen i dostupna su Rust programima u obliku paketa systemd_shared. Ovo zahtijeva najmanje rustc 1.85 i bindgen 0.71.1, što odgovara verzijama u Debian 13.
Testna Rust izvršna datoteka, kada je izgrađena s LTO optimizacijama, zauzima 32 KB, dok C ekvivalent zauzima 20 KB. Podrazumevano, Rust podrška je omogućena samo ako je odgovarajući Rust alat prisutan na sistemu (-Drust=auto). Prva komponenta napisana u Rustu je u razvoju, systemd-keyring-setup, koja još nije usvojena u glavnu systemd kodnu bazu. Systemd-keyring-setup je dizajniran za konfigurisanje i upravljanje X.509 certifikatima za mehanizme kernela. Linux dm-verity, fs-verity i bpf.
izvor: opennet.ru
