181 lines
3.2 KiB
Markdown
181 lines
3.2 KiB
Markdown
|
|
# Hello World en Rust 🦀
|
||
|
|
|
||
|
|
Un programme Rust minimal qui affiche **Hello, World!** dans le terminal.
|
||
|
|
|
||
|
|
## 📋 Prérequis
|
||
|
|
|
||
|
|
Il faut installer **Rust** et son gestionnaire de paquets **Cargo**.
|
||
|
|
|
||
|
|
Sur Kubuntu, l'installation recommandée se fait avec `rustup` :
|
||
|
|
|
||
|
|
```bash
|
||
|
|
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
||
|
|
```
|
||
|
|
|
||
|
|
Puis rechargez votre environnement :
|
||
|
|
|
||
|
|
```bash
|
||
|
|
source "$HOME/.cargo/env"
|
||
|
|
```
|
||
|
|
|
||
|
|
Vérifiez l'installation :
|
||
|
|
|
||
|
|
```bash
|
||
|
|
rustc --version
|
||
|
|
cargo --version
|
||
|
|
```
|
||
|
|
|
||
|
|
## 🚀 Création du projet
|
||
|
|
|
||
|
|
Créer un nouveau projet :
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cargo new hello-world
|
||
|
|
```
|
||
|
|
|
||
|
|
Entrer dans le répertoire :
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd hello-world
|
||
|
|
```
|
||
|
|
|
||
|
|
Le projet contient automatiquement :
|
||
|
|
|
||
|
|
```text
|
||
|
|
hello-world/
|
||
|
|
├── Cargo.toml
|
||
|
|
└── src/
|
||
|
|
└── main.rs
|
||
|
|
```
|
||
|
|
|
||
|
|
## 💻 Le programme
|
||
|
|
|
||
|
|
Le fichier `src/main.rs` contient :
|
||
|
|
|
||
|
|
```rust
|
||
|
|
fn main() {
|
||
|
|
println!("Hello, World!");
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### Explication
|
||
|
|
|
||
|
|
- `fn main()` définit la fonction principale du programme.
|
||
|
|
- `println!()` affiche du texte dans le terminal.
|
||
|
|
- `;` termine l'instruction.
|
||
|
|
|
||
|
|
## ▶️ Exécuter le programme
|
||
|
|
|
||
|
|
Depuis le répertoire du projet :
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cargo run
|
||
|
|
```
|
||
|
|
|
||
|
|
Résultat :
|
||
|
|
|
||
|
|
```text
|
||
|
|
Hello, World!
|
||
|
|
```
|
||
|
|
|
||
|
|
## 🔨 Compiler le programme
|
||
|
|
|
||
|
|
Pour compiler :
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cargo build
|
||
|
|
```
|
||
|
|
|
||
|
|
L'exécutable sera placé dans :
|
||
|
|
|
||
|
|
```text
|
||
|
|
target/debug/hello-world
|
||
|
|
```
|
||
|
|
|
||
|
|
Vous pouvez également l'exécuter directement :
|
||
|
|
|
||
|
|
```bash
|
||
|
|
./target/debug/hello-world
|
||
|
|
```
|
||
|
|
|
||
|
|
## ⚡ Compilation optimisée
|
||
|
|
|
||
|
|
Pour créer une version optimisée :
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cargo build --release
|
||
|
|
```
|
||
|
|
|
||
|
|
L'exécutable sera alors disponible ici :
|
||
|
|
|
||
|
|
```text
|
||
|
|
target/release/hello-world
|
||
|
|
```
|
||
|
|
|
||
|
|
Exécution :
|
||
|
|
|
||
|
|
```bash
|
||
|
|
./target/release/hello-world
|
||
|
|
```
|
||
|
|
|
||
|
|
## 🧪 Vérifier le code
|
||
|
|
|
||
|
|
Rust fournit également `cargo check`, qui vérifie le code sans produire l'exécutable :
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cargo check
|
||
|
|
```
|
||
|
|
|
||
|
|
C'est particulièrement pratique pendant le développement.
|
||
|
|
|
||
|
|
## 📦 Structure de Cargo.toml
|
||
|
|
|
||
|
|
Le fichier `Cargo.toml` décrit le projet :
|
||
|
|
|
||
|
|
```toml
|
||
|
|
[package]
|
||
|
|
name = "hello-world"
|
||
|
|
version = "0.1.0"
|
||
|
|
edition = "2024"
|
||
|
|
|
||
|
|
[dependencies]
|
||
|
|
```
|
||
|
|
|
||
|
|
Pour ce programme, aucune dépendance externe n'est nécessaire.
|
||
|
|
|
||
|
|
## 🦀 Commandes Cargo essentielles
|
||
|
|
|
||
|
|
| Commande | Fonction |
|
||
|
|
| ----------------------- | ------------------------------------- |
|
||
|
|
| `cargo new projet` | Créer un projet |
|
||
|
|
| `cargo run` | Compiler et exécuter |
|
||
|
|
| `cargo build` | Compiler |
|
||
|
|
| `cargo build --release` | Compiler en mode optimisé |
|
||
|
|
| `cargo check` | Vérifier le code |
|
||
|
|
| `cargo clean` | Supprimer les fichiers de compilation |
|
||
|
|
| `cargo fmt` | Formater le code |
|
||
|
|
| `cargo test` | Exécuter les tests |
|
||
|
|
|
||
|
|
## 🎯 Objectif
|
||
|
|
|
||
|
|
Ce projet constitue le point de départ pour apprendre Rust.
|
||
|
|
|
||
|
|
Les prochaines étapes peuvent être :
|
||
|
|
|
||
|
|
1. Variables et constantes
|
||
|
|
2. Types et fonctions
|
||
|
|
3. Conditions `if`
|
||
|
|
4. Boucles `for`, `while`, `loop`
|
||
|
|
5. Tableaux et `Vec`
|
||
|
|
6. Structs
|
||
|
|
7. Enums
|
||
|
|
8. Gestion des erreurs
|
||
|
|
9. Ownership et borrowing
|
||
|
|
10. Modules et crates
|
||
|
|
11. Programmation concurrente
|
||
|
|
12. Appels GPU avec Rust
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
**Rust 🦀 — rapide, sûr et moderne.**
|