Capitole du Libre 2022

Unsafe en Rust
20/11/2022 , A001

Ce talk explique comment faire de l'unsafe en Rust, les pièges à éviter et fournit quelques suggestions pour s'en sortir mieux. Il utilise la "crate" sysinfo comme exemple. Le but de sysinfo est de permettre aux utilisateurs d'avoir accès aux informations systèmes avec la même API pour différents systèmes d'exploitations.


Rust est langage de programmation et sysinfo est une "crate" qui fournit des informations système. Il peut être intéressant de montrer ce qu'il arrive quand on essaie de récupérer des informations "bas niveau", comme les pièges que l'on peut rencontrer. Par exemple, comment itérer sur un "pointeur C" en les "emballant" (wrapping) dans une structure ou comment gérer les allocations/désallocations mémoires automatiquement en utilisant le "trait" Drop.

La "crate" sysinfo est un très bon représentation de tous ces challenges techniques car elle interagit directement avec les systèmes en utilisant des APIs bas niveau. Cela permet aussi de voir comment cela fonctionne dans des environnements "aussi unsafe" avec des "appels unsafes" provenant de "bibliothèques systèmes unsafe".

Rust language reviewer and contributor, rustdoc team leader, “low-level” adventurer, trying to extract all information from the system before it all breaks down.