- Maîtriser les commandes cargo
- Gérer les dépendances
- Créer des workspaces
- Publier des crates
- Utiliser les features
| Term | Definition |
|---|---|
| Cargo | Gestionnaire de paquets et build tool Rust |
| Crate | Unité de compilation Rust |
| Dependency | Bibliothèque externe utilisée |
| Workspace | Collection de crates liés |
| Feature | Fonctionnalité optionnelle d'une crate |
Cargo est comme une boîte à outils 🧰 complète:
- Gestionnaire de paquets : Télécharge et gère les bibliothèques
- Build tool : Compile votre code
- Test runner : Lance les tests
- Documentation : Génère la documentation
C'est exactement comme cargo fonctionne! C'est super pratique!
┌─────────────────────────────────────────┐
│ 🧰 CARGO = BOÎTE À OUTILS 🧰 │
├─────────────────────────────────────────┤
│ │
│ cargo build → Compiler │
│ cargo test → Tester │
│ cargo doc → Documenter │
│ cargo run → Exécuter │
│ │
│ Tous les outils en un! ✅ │
│ │
└─────────────────────────────────────────┘
Mnémonique: "Boîte à Outils" - Cargo contient tous les outils nécessaires pour développer en Rust: compiler, tester, documenter, tout en un seul endroit!
# Créer un nouveau projet
cargo new mon_projet
# Compiler
cargo build
# Compiler et exécuter
cargo run
# Lancer les tests
cargo test
# Vérifier sans compiler
cargo check
# Formater le code
cargo fmt
# Linter
cargo clippy
# Générer la documentation
cargo doc --openCargo.toml :
[package]
name = "mon_projet"
version = "0.1.0"
edition = "2021"
[dependencies]
serde = "1.0"
tokio = { version = "1.35", features = ["full"] }
[dev-dependencies]
criterion = "1.0"Mettre à jour :
cargo updateCargo.toml (racine) :
[workspace]
members = [
"crate1",
"crate2",
]
[workspace.dependencies]
tokio = "1.35"Cargo.toml :
[features]
default = ["std"]
std = []
no-std = []
[dependencies]
# Dépendances conditionnellesUtiliser :
cargo build --features "feature1,feature2"
cargo build --no-default-features[profile.dev]
opt-level = 0 # Pas d'optimisation
[profile.release]
opt-level = 3 # Optimisation maximale
lto = true # Link-time optimization- Toujours vérifier les dépendances avec
cargo audit - Mettre à jour régulièrement
- Utiliser des versions spécifiques en production