Foi aceito na base de código do gerenciador de sistema systemd uma mudança que adiciona a possibilidade de criar componentes na linguagem Rust. O Rust será utilizado apenas para desenvolver novos componentes, e não há planos para reescrever o código existente em C para Rust. O gerenciador de pacotes cargo não é utilizado durante o processo de construção, permanecendo apenas o sistema de construção Meson. O código Rust será usado em modo "no_std" (sem a biblioteca padrão), sendo permitidas apenas as bibliotecas core, alloc e libc.
Os componentes do systemd em Rust são vinculados dinamicamente à biblioteca C libsystemd-shared. As amarrações em Rust da libsystemd-shared são geradas automaticamente durante a construção a partir dos arquivos de cabeçalho usando a ferramenta bindgen, e ficam disponíveis para programas em Rust na forma de um pacote systemd_shared. É necessária pelo menos a versão rustc 1.85 e bindgen 0.71.1, que correspondem às versões do Debian 13.
Um executável de teste em Rust, quando compilado com otimizações LTO, ocupa 32 KB, enquanto seu equivalente em C ocupa 20 KB. Por padrão, o suporte ao Rust é ativado apenas na presença das ferramentas Rust correspondentes no sistema (-Drust=auto). O primeiro componente escrito em Rust, chamado systemd-keyring-setup, está sendo desenvolvido, mas ainda não foi aceito na base principal de código do systemd. O systemd-keyring-setup é destinado à configuração e gerenciamento de certificados X.509 para os mecanismos do núcleo Linux dm-verity, fs-verity e bpf.
Fonte: opennet.ru
