Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Environnement de travail

Au delà de son compilateur rustc (excellentissime, comme nous le verrons par la suite), Rust propose de nombreux outils très aboutis que nous allons apprendre à connaître.

Un dicton dit

« On reconnaît un bon artisan au fait qu’il choisit bien ses outils. »

Je ne sais pas s’il est exact, mais je sais que l’environnement de travail Rust nous apporte indéniablement une palette d’outils de très bonne qualité.

Les principaux outils Rust

Pour travailler correctement et proprement avec Rust, nous avons besoin de connaître quelques commandes simples pour utiliser rustup, cargo, rustfmt, clippy et rustdoc.

rustup

rustup est l’installateur officiel et le gestionnaire de versions de Rust.

Il permet notamment :

  • d’installer et de mettre à jour les outils Rust.
  • de gérer plusieurs versions et de basculer de l’une à l’autre.
  • d’ajouter des cibles de compilation croisée (cross-compilation) pour créer des exécutables pour d’autres systèmes (Android, Windows, WebAssembly, etc.).
  • de télécharger les composants additionnels.

cargo

cargo permet de faire à peu près tout le reste, si nous nous y prenons bien.

Les commandes clefs à connaître sont :

  • cargo new pour créer un nouveau projet.
  • cargo run pour exécuter le projet en cours.
  • cargo test pour exécuter les tests du projet en cours.
  • cargo build pour compiler le projet en cours (si les deux précédentes qui se chargent de le faire ne suffisent pas).
  • cargo fmt (rustfmt).
  • cargo clippy.

rustfmt

rustfmt est un formateur de code. Il se charge de nous aider à présenter proprement le code.

rustfmt applique les règles de style officielles de la communauté Rust (indentation, espaces, sauts de lignes, placement des accolades). Cela garantit que tous les projets Rust partagent la même structure visuelle.

clippy

clippy est le linter (analyseur statique) de Rust.

Le compilateur rustc est déjà un assistant très qualitatif. clippy va plus loin en traquant les anti-patterns, les problèmes de performance potentiels, le code non idiomatique ou les erreurs de logique courantes.

rustdoc

rustdoc est le générateur de documentation Rust.

C’est un outil qui redonne envie de documenter, tellement il est bien conçu, à commencer par le support du langage Markdown.

Pour vous convaincre de sa qualité, je vous invite à faire une petite balade dans https://docs.rs. Il s’agit du site regroupant toutes les documentations des projets déposés sur les serveurs publics de la communauté.

TOUS les projets présents dans le dépôt des crates (paquet Rust) https://crates.io/ voient leur documentation publiée dans https://docs.rs.

Exemple :

Autre gros atout de la documentation rustdoc : elle relie la documentation avec le code source (dupliqué dans la documentation pour plus de commodité d’affichage).

Exemple :

Les lignes correspondant au code concerné (la fonction publique spawn ici) sont bien surlignées dans l’affichage et indiquées dans l’URL.