Aller au contenu

Débuter avec Rust

Installons Rust sur votre machine et construisons votre premier programme. Si vous préférez ne rien installer pour l’instant, vous pouvez suivre dans le Rust Playground (un environnement pour exécuter Rust dans le navigateur) et revenir à cette page plus tard.

La façon officielle d’installer Rust, c’est un outil appelé rustup. Il installe le compilateur Rust et l’outil de build cargo, puis garde le tout à jour.

Rendez-vous sur rustup.rs et suivez les instructions pour votre système :

  • Windows : téléchargez et lancez rustup-init.exe, puis acceptez les options par défaut.

  • macOS / Linux : collez ceci dans votre terminal :

    Terminal window
    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Fermez puis rouvrez votre terminal, et lancez :

Terminal window
rustc --version
cargo --version

Vous devriez voir des numéros de version comme rustc 1.xx.0. Si c’est le cas, tout est prêt.

  • rustc est le compilateur Rust (il transforme votre code en programme).
  • cargo est l’outil tout-en-un de Rust pour compiler, exécuter, tester et gérer vos projets. Vous utiliserez cargo pour presque tout.

Plutôt que de créer les fichiers à la main, laissez cargo préparer un projet pour vous :

Terminal window
cargo new hello_rust
cd hello_rust

Cela crée un dossier hello_rust avec tout ce dont un projet Rust a besoin :

hello_rust/
├── Cargo.toml # réglages du projet et dépendances
└── src/
└── main.rs # votre code va ici
  • Cargo.toml décrit votre projet (son nom, sa version et les bibliothèques qu’il utilise).
  • src/main.rs est le fichier de départ. cargo y met même un « Hello World » pour vous.

Depuis le dossier du projet, lancez :

Terminal window
cargo run

Vous verrez cargo compiler le projet, puis afficher :

Hello, world!

C’est tout : vous venez de compiler et d’exécuter un programme Rust. (Le message est en anglais parce que c’est le programme d’exemple que cargo new génère.)

Ouvrez src/main.rs et vous trouverez :

fn main() {
println!("Hello, world!");
}
  • fn main() { ... } définit la fonction principale : tout programme Rust commence son exécution ici.
  • println!("...") affiche une ligne de texte à l’écran.

Essayez de changer le message et relancez cargo run :

fn main() {
println!("Bonjour depuis mon premier programme Rust !");
}

Sortie :

Bonjour depuis mon premier programme Rust !
▶ Essayez par vous-même

Deux commandes que vous utiliserez sans arrêt :

Commande Ce qu’elle fait
cargo run Compile et exécute votre programme (idéal pendant le développement)
cargo build Compile seulement : le programme se retrouve dans target/debug/
cargo build --release Compile une version optimisée, plus rapide, pour la distribuer

Quand ça ne marche pas : lire les erreurs du compilateur

Section intitulée « Quand ça ne marche pas : lire les erreurs du compilateur »

Vous verrez des erreurs de compilation, tous les jours, même après des années de Rust. Ce n’est pas le signe que vous êtes mauvais. C’est le compilateur qui fait son travail. Provoquons-en une exprès, pour qu’elle fasse moins peur la première fois.

Supprimez le ! de println! dans src/main.rs :

fn main() {
println("Hello, world!");
}

Lancez cargo run et vous obtiendrez :

error[E0423]: expected function, found macro `println`
--> src/main.rs:2:5
|
2 | println("Hello, world!");
| ^^^^^^^ not a function
|
help: use `!` to invoke the macro
|
2 | println!("Hello, world!");
| +

Les messages de rustc sont toujours en anglais. Lisez-le de haut en bas :

  1. La première ligne dit ce qui ne va pas : Rust attendait une fonction (expected function), mais println est une macro (vous verrez ce que cela veut dire à la page suivante).
  2. --> src/main.rs:2:5 indique où : le fichier src/main.rs, ligne 2, colonne 5.
  3. Les marques ^^^^^^^ pointent exactement le morceau de code en cause.
  4. La partie help: montre souvent la correction. Ici, elle marque même le ! manquant avec un +.

Remettez le ! et tout refonctionne :

fn main() {
println!("Hello, world!");
}

Sortie :

Hello, world!
▶ Essayez par vous-même

Étape 5 : configurer votre éditeur (recommandé)

Section intitulée « Étape 5 : configurer votre éditeur (recommandé) »

Pour le meilleur confort, installez l’extension rust-analyzer dans votre éditeur. Elle vous apporte l’autocomplétion, les messages d’erreur directement dans le code et des indications de type pendant que vous tapez.

  • VS Code : installez l’extension rust-analyzer
  • La plupart des autres éditeurs (JetBrains, Neovim, etc.) prennent aussi en charge rust-analyzer.

Faites afficher trois lignes à votre programme : votre prénom, votre plat préféré et Je viens de lancer Rust !. Indice : un println! affiche une ligne, utilisez-en donc trois.

Voir la solution
fn main() {
println!("Je m'appelle Camille");
println!("J'aime la pizza");
println!("Je viens de lancer Rust !");
}

Sortie :

Je m'appelle Camille
J'aime la pizza
Je viens de lancer Rust !
▶ Essayez par vous-même

Affichez une petite bannière comme celle ci-dessous, avec une ligne de signes = au-dessus et en dessous d’un titre. Ensuite, cassez-la exprès en supprimant un !, lancez cargo run, lisez l’erreur et corrigez-la. Indice : les lignes de = sont du simple texte dans println!, comme n’importe quel autre message.

Voir la solution
fn main() {
println!("==============");
println!(" BONJOUR RUST");
println!("==============");
}

Sortie :

==============
BONJOUR RUST
==============
▶ Essayez par vous-même
  • Installez Rust avec rustup depuis rustup.rs.
  • Vérifiez avec rustc --version et cargo --version.
  • Créez un projet avec cargo new, lancez-le avec cargo run.
  • Un projet contient un Cargo.toml (les réglages) et un src/main.rs (votre code).
  • Lisez les erreurs du compilateur de haut en bas : quoi, où, et souvent un help: avec la correction.
  • Installez rust-analyzer dans votre éditeur pour une expérience bien plus agréable.

Petit quiz

1. Quel outil installe le compilateur Rust et cargo, et les garde à jour ?

2. Quel fichier décrit le nom, la version et les dépendances d’un projet Rust ?

3. Quelle commande compile seulement votre programme, sans l’exécuter ?

Score : 0 / 3