Il y a bien sur un système de lib standard comme dans tous les langages, la particularité de Rust est qu'il y en a deux :
- "core" contient juste le minimum pour que le langage fonctionne (type et traits de base).
- "std" reprend "core et ajoute les fonctionnalités qui dépendent de l'OS (fichier, réseau, allocation mémoire, thread, processus, ...), et quelques types plus avancée (collection, chemins, ...). On reste loin de l'exhaustivité des bibliothèques Java ou Python.
Quand on développe un programme dans des environnements ou l'on a pas accès normal à l'OS (création d'OS, un driver, l'embarqué sans OS), on utilise le mode "nostd" où l'on à plus accès qu'à core. C'est l'équivalent du mode freestanding en C. Le cas du développement de drivers Linux en Rust est un exemple typique de code où l'on utilise le mode nostd.
Ceci dit la grande majorité des programmes Rust finaux utilisent la bibliothèque "std" classique qui donne accès aux fonctionnalités générales de l'OS, en utilisant souvent la libc en interne, vu que c'est le seul moyen stable qu'offrent la plupart des OS pour ce faire.
Partager