Systemd-järjestelmänhallinnan koodikantaan on tehty muutos, joka lisää mahdollisuuden luoda komponentteja Rustissa. Rustia on tarkoitettu käytettäväksi vain uusien komponenttien kehittämiseen, eikä olemassa olevaa C-koodia ole suunnitelmissa kirjoittaa uudelleen Rustissa. Cargo-paketinhallintaa ei enää käytetä käännösprosessissa, ja jäljellä on vain Meson-koontijärjestelmä. Rust-koodia käytetään "no_std"-tilassa (ilman vakiokirjastoa), ja vain core-, alloc- ja libc-kirjastot ovat sallittuja.
systemd Rust -komponentit on dynaamisesti linkitetty libsystemd-shared C-kirjastoon. Rust-sidokset libsystemd-sharedille luodaan automaattisesti koontivaiheessa otsikkotiedostoista bindgen-apuohjelmalla, ja ne ovat Rust-ohjelmien saatavilla systemd_shared-paketin muodossa. Tämä vaatii vähintään rustc 1.85:n ja bindgen 0.71.1:n, jotka vastaavat versioita Debian 13.
LTO-optimoinneilla rakennettu Rust-testaustiedosto vie 32 kt, kun taas C-kielinen vastine on 20 kt. Oletusarvoisesti Rust-tuki on käytössä vain, jos vastaava Rust-työkaluketju on järjestelmässä (-Drust=auto). Ensimmäinen Rustilla kirjoitettu komponentti on kehitteillä, systemd-keyring-setup, jota ei ole vielä otettu käyttöön systemd:n pääkoodikannassa. Systemd-keyring-setup on suunniteltu X.509-varmenteiden konfigurointiin ja hallintaan kernel-mekanismeja varten. Linux dm-verity, fs-verity ja bpf.
Lähde: opennet.ru
