Voici un tableau de référence des modules du Rust :
| Modules | Description |
|---|---|
| alloc | Ce module permet de gérer l'allocation dynamique de mémoire, notamment à travers des structures comme Box, Vec, ou String, lorsqu'un allocateur est disponible. |
| any | Ce module permet de manipuler des types de manière dynamique et d'effectuer des réflexions de type à l'exécution via le trait Any. |
| arch | Ce module permet d'accéder à des fonctions spécifiques à l'architecture matérielle, comme les intrinsics SIMD ou les instructions spécifiques à un processeur. |
| array | Ce module permet de fournir des outils utilitaires pour travailler avec les tableaux ([T; N]) en Rust, notamment les conversions et initialisations. |
| ascii | Ce module permet d'effectuer des opérations sur les chaînes de caractères et caractères ASCII, comme les conversions entre majuscules et minuscules. |
| backtrace | Ce module permet de capturer une trace de pile (stack backtrace) pour les processus légers du système d'exploitation, utile pour le débogage. |
| borrow | Ce module permet de gérer les données empruntées en fournissant des traits comme Borrow et ToOwned, facilitant les conversions entre références et valeurs. |
| boxed | Ce module permet d'utiliser le type Box<T>, permettant d'allouer des valeurs sur la mémoire de tas et de gérer leur durée de vie via une sémantique de possession. |
| cell | Ce module permet de créer des conteneurs mutables partageables, tels que Cell<T> et RefCell<T>, utiles pour contourner les règles de l'emprunt immuable. |
| char | Ce module permet de manipuler le type primitif char, avec des fonctions pour analyser, convertir et vérifier des propriétés Unicode. |
| clone | Ce module permet de définir le trait Clone, utilisé pour créer des copies explicites de valeurs, même lorsqu'elles ne sont pas implicitement copiables. |
| cmp | Ce module permet de comparer et d'ordonner des valeurs via les traits PartialEq, Eq, PartialOrd et Ord, essentiels pour les opérations logiques et de tri. |
| collections | Ce module permet d'accéder à diverses structures de données comme VecDeque, HashMap, ou BTreeMap, utiles pour la gestion avancée de collections. |
| convert | Ce module permet de convertir des valeurs entre différents types à l'aide des traits From, Into, TryFrom et TryInto. |
| default | Ce module permet d'utiliser le trait Default, fournissant une valeur par défaut pour les types qui l'implémentent, souvent utilisée pour l'initialisation générique. |
| env | Ce module permet d'inspecter et de manipuler l'environnement du processus, incluant les variables d'environnement, les arguments de la ligne de commande et plus. |
| error | Ce module permet de manipuler les erreurs via le trait Error, en définissant des interfaces standardisées pour la gestion des erreurs dans Rust. |
| f32 | Ce module permet d'accéder à des constantes spécifiques au type flottant f32, comme INFINITY, NAN, ou EPSILON. |
| f64 | Ce module permet d'accéder à des constantes spécifiques au type flottant f64, utilisées dans les calculs numériques en double précision. |
| ffi | Ce module permet de créer des interfaces de liaison avec du code écrit dans d'autres langages (Foreign Function Interface), comme le C. |
| fmt | Ce module permet de formater et d'imprimer des chaînes de caractères, notamment via les macros format!, print! et println!. |
| fs | Ce module permet de manipuler le système de fichiers, avec des fonctions pour lire, écrire, créer, supprimer ou inspecter des fichiers et des répertoires. |
| future | Ce module permet de gérer la programmation asynchrone via le trait Future, qui représente une valeur qui pourra être disponible ultérieurement. |
| hash | Ce module permet d'effectuer des opérations de hachage générique avec des traits comme Hash et des structures comme Hasher. |
| hint | Ce module permet de fournir des suggestions au compilateur sur l'optimisation ou la génération de code, comme avec unreachable_unchecked. |
| i8 (dépréciation prévue) | Ce module permet d'accéder à des constantes redondantes liées au type entier signé i8, dont l'usage est progressivement remplacé. |
| i16 (dépréciation prévue) | Ce module permet d'accéder à des constantes redondantes liées au type entier signé i16, voué à être retiré à terme. |
| i32 (dépréciation prévue) | Ce module permet d'accéder à des constantes redondantes liées au type entier signé i32, en doublon avec les constantes intégrées. |
| i64 (dépréciation prévue) | Ce module permet d'accéder à des constantes redondantes liées au type entier signé i64, bien que leur usage ne soit plus recommandé. |
| i128 (dépréciation prévue) | Ce module permet d'accéder à des constantes redondantes du type entier signé i128, mais il est prévu de le retirer. |
| io | Ce module permet d'effectuer des opérations d'entrée/sortie standards, comme lire ou écrire dans des fichiers, des tampons ou la console. |
| isize (dépréciation prévue) | Ce module permet d'accéder à des constantes obsolètes pour le type isize, remplacées par des moyens plus intégrés au langage. |
| iter | Ce module permet d'implémenter et de composer des itérateurs externes, offrant des outils puissants pour le traitement de séquences. |
| marker | Ce module permet de définir des traits et types spéciaux comme Send, Sync ou PhantomData, servant à exprimer des propriétés fondamentales de types. |
| mem | Ce module permet de manipuler directement la mémoire, notamment avec des fonctions pour déplacer, remplacer ou aligner des valeurs. |
| net | Ce module permet d'effectuer des communications réseau en fournissant des primitives TCP et UDP multiplateformes. |
| num | Ce module permet d'étendre les fonctionnalités numériques de base, avec des traits, des constantes et des fonctions utiles pour les types numériques. |
| ops | Ce module permet de surcharger les opérateurs grâce à des traits comme Add, Sub, Mul, ou Index, permettant des comportements personnalisés. |
| option | Ce module permet de gérer la présence ou l'absence d'une valeur à l'aide du type Option, avec des méthodes pratiques pour le traitement conditionnel. |
| os | Ce module permet d'accéder à des fonctionnalités spécifiques aux systèmes d'exploitation, telles que les identifiants de processus ou les chemins natifs. |
| panic | Ce module permet de gérer les situations d'arrêt d'exécution (panic), avec des macros et fonctions pour déclencher ou intercepter des paniques. |
| path | Ce module permet de manipuler des chemins de fichiers et de répertoires de manière portable entre différents systèmes d'exploitation. |
| pin | Ce module permet d'empêcher le déplacement en mémoire de certaines données, utile pour garantir la stabilité de l'adresse mémoire dans certains contextes. |
| prelude | Ce module permet de réexporter les éléments les plus courants de la bibliothèque standard, afin qu'ils soient automatiquement disponibles sans importation explicite. |
| primitive | Ce module permet de réexporter les types primitifs pour garantir leur accessibilité même en cas de noms en conflit dans d'autres contextes. |
| process | Ce module permet de gérer les processus système, avec des fonctions pour lancer, surveiller et interagir avec des programmes externes. |
| ptr | Ce module permet de manipuler manuellement la mémoire à l'aide de pointeurs bruts (*const T et *mut T) pour des opérations bas niveau. |
| rc | Ce module permet de créer des pointeurs à comptage de références (Rc<T>) pour partager des données entre plusieurs parties d'un programme dans un contexte mono-processus léger. |
| result | Ce module permet de gérer les erreurs avec le type Result, représentant une valeur correcte (Ok) ou une erreur (Err), et des outils pour leur traitement. |
| slice | Ce module permet de travailler avec les tranches ([T]), en fournissant des méthodes pour leur manipulation, leur itération et leur transformation. |
| str | Ce module permet de manipuler les chaînes de caractères UTF-8 immuables (str), avec des outils pour l'analyse, la recherche et la conversion. |
| string | Ce module permet d'utiliser les chaînes de caractères UTF-8 dynamiques et modifiables via le type String, avec des méthodes de manipulation avancées. |
| sync | Ce module permet d'utiliser des primitives de synchronisation sûres entre processus légers comme Mutex, RwLock, ou Arc, essentielles en programmation concurrente. |
| task | Ce module permet de manipuler des tâches désynchronisées, notamment via des types comme Waker ou des traits comme Poll pour la planification. |
| thread | Ce module permet de créer et gérer des processus légers natifs, y compris leur synchronisation, leur interruption et le partage de données entre eux. |
| time | Ce module permet de travailler avec le temps et les durées, avec des types comme Duration ou Instant pour mesurer ou représenter des intervalles temporels. |
| u8 (dépréciation prévue) | Ce module permet d'accéder à des constantes redondantes pour le type entier non signé u8, bien qu'il soit prévu de le retirer car ces constantes sont accessibles directement. |
| u16 (dépréciation prévue) | Ce module permet d'accéder à des constantes redondantes pour le type entier non signé u16, dont l'usage est obsolète. |
| u32 (dépréciation prévue) | Ce module permet d'accéder à des constantes redondantes pour le type entier non signé u32, vouées à être supprimées de l'API standard. |
| u64 (dépréciation prévue) | Ce module permet d'accéder à des constantes redondantes pour le type entier non signé u64, qui ne sont plus recommandées. |
| u128 (dépréciation prévue) | Ce module permet d'accéder à des constantes redondantes pour le type entier non signé u128, en doublon avec les constantes intégrées. |
| usize (dépréciation prévue) | Ce module permet d'accéder à des constantes redondantes pour le type entier usize, bien qu'elles soient déjà accessibles sans ce module. |
| vec | Ce module permet d'utiliser le type Vec<T>, une structure de données représentant un tableau dynamique contigu alloué sur le tas. |
| assert_matches (expérimental) | Ce module permet d'utiliser la macro expérimentale assert_matches!, servant à valider qu'une valeur correspond à un motif donné. |
| async_iter (expérimental) | Ce module permet de créer des itérateurs asynchrones composables, facilitant le traitement séquentiel de flux de données asynchrones. |
| autodiff (expérimental) | Ce module permet de réaliser la différentiation automatique, utile pour les applications en apprentissage automatique ou en calcul scientifique. |
| bstr (expérimental) | Ce module permet d'utiliser les types ByteStr et ByteString, fournissant des opérations efficaces sur des chaînes d'octets UTF-8 ou binaires. |
| f16 (expérimental) | Ce module permet d'accéder à des constantes liées au type flottant f16, représentant des nombres à virgule flottante en demi-précision. |
| f128 (expérimental) | Ce module permet d'accéder à des constantes associées au type flottant f128, utilisé pour les calculs en quadruple précision. |
| intrinsics (expérimental) | Ce module permet d'utiliser les intrinsics du compilateur, fournissant des opérations internes non sûres souvent utilisées dans des contextes bas niveau. |
| pat (expérimental) | Ce module permet de gérer des macros associées aux types de motifs (pattern_type), utiles pour les générateurs de code ou les API internes. |
| random (expérimental) | Ce module permet de générer des valeurs aléatoires, utilisé dans les algorithmes probabilistes et les tests aléatoires. |
| range (expérimental) | Ce module permet d'utiliser des types de plages expérimentaux, pouvant remplacer ou étendre les plages (start..end) classiques. |
| simd (expérimental) | Ce module permet d'exploiter le SIMD (Single Instruction, Multiple Data) portable, pour écrire du code optimisé et parallèle sur différentes architectures. |
| unsafe_binder (expérimental) | Ce module permet de convertir des types en "binders" non sécurisés et inversement, utilisé dans des scénarios avancés de gestion de mémoire ou de typage. |
Dernière mise à jour : Mardi, le 5 août 2025