Bibliothèques

En complément de la bibliothèque standard du langage, l'outil cargo fournit un moyen pratique d'intégrer des bibliothèques tierces dans un projet en Rust. Ces bibliothèques, appelées crates dans l'écosystème Rust, sont importées depuis le dépôt central de composants en sources ouvertes crates.io.

Il doit être noté que la qualité (en termes de sécurité, de performances, de lisibilité, etc.) des crates publiées est très variable. De plus, leur maintenance peut être irrégulière ou interrompue. L'usage de chaque composant de ce dépôt doit donc être justifié, et le développeur doit également valider le bon respect des règles du présent guide sur le code correspondant. Plusieurs outils peuvent l'aider dans cette tâche.

Cargo-outdated

L'outil Cargo-outdated permet de faciliter la gestion des versions des dépendances.

Pour une crate donnée, l'outil liste les versions utilisées des dépendances (dépendances listées dans le fichier Cargo.toml), et vérifie s'il s'agit de la dernière version compatible disponible ainsi que la dernière version en général.

Règle LIBS-OUTDATED

L'outil cargo-outdated doit être utilisé pour vérifier le statut des dépendances. Ensuite, chaque dépendance importée en version obsolète doit être mise à jour ou bien, le cas échéant, le choix de la version doit être justifié.

Cargo-audit

Cargo-audit est un outil permettant de vérifier s'il existe des vulnérabilités connues dans la RustSec Advisory Database pour les dépendances utilisées dans un projet.

Règle LIBS-AUDIT

L'outil cargo-audit doit être utilisé pour rechercher des vulnérabilités connues dans les dépendances d'un projet.