A rendszerkezelő systemd kódalapjába olyan módosítást fogadtak el, amely lehetővé teszi Rust nyelvű komponensek létrehozását. A Rust-ot kizárólag új komponensek fejlesztésére kívánják használni, a meglévő C nyelvű kódot nem tervezik Rust-ra átírni. A cargo csomagkezelő a fordítás során nem kerül használatra, kizárólag a Meson építési rendszer marad aktív. A Rust kód a „no_std” módban használatos (standard könyvtár nélkül), csak a core, alloc és libc könyvtárak használata engedélyezett.
A systemd Rust komponensei dinamikusan kapcsolódnak a C könyvtárhoz, a libsystemd-shared-hez. A Rust csatlakozók a libsystemd-shared-hez automatikusan generálódnak a fordítási folyamat során a fejlécekből a bindgen eszköz segítségével, és a systemd_shared csomag formájában válnak elérhetővé a Rust programok számára. Legalább 1.85-ös rustc és 0.71.1-es bindgen verzió szükséges, amelyek megfelelnek a Debian 13 verzióinak.
A Rust-ra készült teszt végrehajtható fájl LTO optimalizálásokkal fordítva 32 KB terjedelmű, míg a C nyelvű megfelelője 20 KB. Alapértelmezés szerint a Rust támogatása csak akkor kapcsolódik be, ha a megfelelő Rust eszközkészlet megtalálható a rendszerben (-Drust=auto). Az első Rust nyelven készült komponens a systemd-keyring-setup, amely még nem került be a systemd fő kódalapjába. A systemd-keyring-setup célja az X.509 tanúsítványok beállítása és kezelése a Linux dm-verity, fs-verity és bpf magmechanizmusai számára.
Forrás: opennet.ru
