Installation locale
L’étape qui suit est optionnelle, vous n’en avez pas besoin pour suivre la partie “langage” de ce cours.
Mais pour la partie “utilisation”, ou même avant si vous trouvez ça plus confortable, vous devrez tôt ou tard installer un environnement de développement Rust sur votre machine.
Il y a plusieurs façons de procéder, par exemple vous pouvez le faire via le
gestionnaire de paquets d’une distribution Linux. Cependant, pour avoir accès
aux dernières versions du compilateur, je vous recommande d’utiliser le
mécanisme officiel de distribution du projet Rust : rustup
.
Vous trouverez des instructions adaptées à votre système d’exploitation sur le site du langage. Notez qu’on y trouve aussi des instructions pour configurer différents éditeurs de code.
Une fois l’environnement de développement installé et activé, vous pouvez
utiliser cargo
, le gestionnaire de configuration de Rust, pour créer un
nouveau projet :
cargo new mon-projet-test
Dans le squelette de projet que cette commande va créer, vous trouverez un
dossier src
pour le code source, au sein duquel le fichier src/main.rs
contient un “Hello world” prêt à être remplacé par votre nouvelle idée.
Une fois que vous avez écrit un peu de code et voulez le compiler, vous avez plusieurs options pour contrôler le compromis entre temps de compilation et performances d’exécution :
- Avec
cargo check
, vous vérifiez que le code n’a pas d’erreur de typage sans construire de binaire, ce qui est le plus rapide. La plupart des éditeurs de code peuvent être configurés pour exécuter cette commande automatiquement chaque fois qu’un fichier est enregistré, et afficher les erreurs de compilation éventuelles au niveau du code source concerné. - Avec
cargo run
, vous construisez un binaire sans optimisations et avec des vérifications de déboguage (ex : absence de débordement des entiers) puis vous l’exécutez. C’est un peu plus lent, mais évidemment plus riche en enseignements. - Avec
cargo run --release
, vous construisez un binaire avec optimisations et sans vérifications de déboguage. La compilation prendre plus de temps, mais le binaire produit s’exécutera beaucoup plus rapidement.- Si vous voulez optimiser à fond pour votre CPU, au prix de perdre la
portabilité des binaires générés entre CPUs, vous devez le demander
explicitement comme en C++. Il y a différentes manières de faire, la plus
simple est via une variable d’environnement :
export RUSTFLAGS='-C target-cpu=native' # Pris en compte pour tous les cargo run suivants dans ce shell
- Si vous voulez optimiser à fond pour votre CPU, au prix de perdre la
portabilité des binaires générés entre CPUs, vous devez le demander
explicitement comme en C++. Il y a différentes manières de faire, la plus
simple est via une variable d’environnement :
Il y a bien sûr un mécanisme de cache, donc si vous lancez ces commandes
plusieurs fois de suite, les dernières exécutions de cargo
seront plus
rapides que les premières.
On peut faire plusieurs autres choses
intéressantes avec cargo
(lancer
des tests unitaires, générer la documentation de référence, publier des
bibliothèques…), mais ces premières commandes suffiront pour la partie
“langage” de ce cours.
Enfin, si vous appréciez les fonctionnalités de type IDE (ajout automatique des
imports, autocomplétion, aller à la définition d’une fonction, renommage dans
tout le code…), sachez que la plupart des éditeurs de code modernes sont
compatibles avec l’extension
rust-analyzer
. Si
vous avez déjà eu de mauvaises expériences des fonctionnalités IDE en C++, ne
laissez pas ça vous dissuader : dans l’ensemble, rust-analyzer
est beaucoup
plus facile à installer et fiable à l’utilisation que l’intégration IDE moyenne
pour C++.