
Systemd додає підтримку Rust
Розробка Systemd 263 тепер включає підтримку Rust для нових листових компонентів, зібраних за допомогою Meson без стандартної бібліотеки, тоді як наявний код на C залишається на місці.
Systemd 263 отримує підтримку Rust після того, як розробник Christian Brauner оголосив у Mastodon, що його нову функцію об'єднано. Ця зміна дозволяє писати нові листові компоненти мовою Rust, тоді як наявний код на C залишається на місці, і нічого, від чого залежать інші компоненти, не пишеться мовою Rust.
Що змінилося
Попередню роботу тепер розділено на п'ять окремих частин. Частина 1 містить keyring-util і voa-util, які описують як допоміжні засоби для внесення сертифікатів до кільцевих сховищ ключів ядра. Частина 2 додає допоміжні програми, написані мовою Rust. Решта частин лише прив'язують заголовки, які використовує код Rust, обгортають допоміжні функції libsystemd-shared, потрібні для systemd-keyring-setup, і додають systemd-keyring-setup.
Правила збирання
Rust використовується лише для нових листових компонентів. Наявний код на C не переноситься, і нічого, від чого залежать інші компоненти, не пишеться мовою Rust. Cargo немає; усе збирається за допомогою Meson, який systemd уже використовує. Meson також широко використовується проєктом GNOME і бібліотекою тривимірної графіки Mesa, написаний мовою Python і використовує Ninja. Ninja було розроблено для швидшого збирання Chrome, і його також використовують для Android. Код Rust не повинен використовувати стандартну бібліотеку; цю вимогу описують як нормальну для вбудованого програмування мовою Rust.
Вимоги та обмеження
Проєкт вимагає Rust версії 1.85 або новішої, bindgen версії 0.71.1 або новішої та Meson 1.4.0 або новішої. Rust 1.85 випустили у лютому 2025 року, Rust 1.99.1 з'явився раніше цього місяця, bindgen 0.71.1 вийшов у грудні 2024 року, а Meson 1.4.0 вийшов у березні 2024 року. Це відносно старі версії, а версія Meson є тією, що входить до Debian 13. Brauner сказав, що команда хотіла б мати підтримку Rust у ядрі systemd, але підтримка динамічних бібліотек у Rust ще не зовсім готова. Написання модулів systemd мовою Rust відрізняється від виклику systemd з коду Rust, а засоби на кшталт systemd crate існують з 2015 року.
Джерела: The Register
SiTech — веброзробка з підтримкою AI
Створюємо швидкі та сучасні сайти й інтегруємо AI у бізнес-процеси. Маєте проєкт чи запитання? Із задоволенням допоможемо.