Cargo — Rusts Paketmanager und Build-Tool
Praxis-Guide zu Cargo: Rust-Projekte anlegen, bauen, testen, Abhängigkeiten verwalten, Doku erzeugen und Crates auf crates.io veröffentlichen.
Cargo ist das offizielle Build-Tool und der Paketmanager von Rust – mit einem einzigen Befehlssatz legst du Projekte an, lädst Abhängigkeiten (Crates) von crates.io, kompilierst, testest und veröffentlichst. Statt Compiler, Linker und Dependency-Auflösung von Hand zu jonglieren, beschreibst du dein Projekt in der Cargo.toml und überlässt Cargo den Rest. Dieser Guide führt dich durch die Befehle für den Alltag – vom neuen Projekt über Tests und Linting bis zur Veröffentlichung.
Anlegen & Bauen
cargo new <name> — Legt ein neues Binär-Projekt samt Git-Repository an.
cargo new my-appcargo new --lib <name> — Legt ein neues Bibliotheks-Projekt an.
cargo new --lib my-libcargo init — Initialisiert ein Projekt im aktuellen Verzeichnis.
cargo initcargo build — Kompiliert das Projekt im Debug-Modus.
cargo buildcargo build --release — Kompiliert mit Optimierungen für den Release.
cargo build --releasecargo run — Baut das Projekt und führt es aus.
cargo runcargo run -- <args> — Führt das Programm mit übergebenen Argumenten aus.
cargo run -- --port 8080Abhängigkeiten
cargo add <crate> — Fügt eine Abhängigkeit zur Cargo.toml hinzu.
cargo add serdecargo add <crate>@<version> — Fügt eine bestimmte Version hinzu.
cargo add tokio@1.35cargo add <crate> --features <feat> — Fügt eine Crate mit aktivierten Features hinzu.
cargo add serde --features derivecargo add --dev <crate> — Fügt eine Entwicklungs-Abhängigkeit (dev dependency) hinzu.
cargo add --dev criterioncargo remove <crate> — Entfernt eine Abhängigkeit aus der Cargo.toml.
cargo remove regexcargo update — Aktualisiert Abhängigkeiten auf die neuesten kompatiblen Versionen.
cargo updatecargo tree — Zeigt den Abhängigkeitsbaum an.
cargo treeTesten & Prüfen
cargo test — Führt alle Tests aus.
cargo testcargo test <name> — Führt Tests aus, die zu einem Namensmuster passen.
cargo test test_parsecargo test -- --nocapture — Führt Tests aus und zeigt stdout/stderr an.
cargo test -- --nocapturecargo check — Prüft auf Fehler, ohne zu kompilieren (schneller als build).
cargo checkcargo bench — Führt Benchmarks aus.
cargo benchcargo clippy — Führt den Clippy-Linter für Code-Verbesserungen aus.
cargo clippy -- -W clippy::pedanticFormatieren & Dokumentation
cargo fmt — Formatiert den Code mit rustfmt.
cargo fmtcargo fmt -- --check — Prüft die Formatierung, ohne etwas zu ändern.
cargo fmt -- --checkcargo doc — Erzeugt die Dokumentation für das Projekt.
cargo doccargo doc --open — Erzeugt die Dokumentation und öffnet sie im Browser.
cargo doc --openVeröffentlichen & Installieren
cargo publish — Veröffentlicht die Crate auf crates.io.
cargo publishcargo publish --dry-run — Prüft, ob die Crate veröffentlichungsbereit ist.
cargo publish --dry-runcargo install <crate> — Installiert eine Binär-Crate von crates.io.
cargo install ripgrepcargo install --path . — Installiert das aktuelle Projekt als Binärdatei.
cargo install --path .cargo uninstall <crate> — Deinstalliert eine zuvor installierte Binär-Crate.
cargo uninstall ripgrepWorkspaces & Aufräumen
cargo clean — Entfernt das target-Verzeichnis (kompilierte Artefakte).
cargo cleancargo workspace <cmd> — Führt einen Befehl über alle Workspace-Mitglieder aus.
cargo test --workspacecargo metadata — Gibt Projekt-Metadaten als JSON aus.
cargo metadata --format-version 1cargo search <query> — Sucht auf crates.io nach Crates.
cargo search http server Fazit
Cargo nimmt dir die gesamte Routine eines Rust-Projekts ab: Mit cargo build, cargo test und cargo run deckst du den täglichen Entwicklungszyklus ab, und cargo clippy plus cargo fmt halten den Code sauber. Zwei Befehle solltest du bewusst einsetzen: cargo install lädt und kompiliert fremde Crates samt deren Build-Skripten, die auf deinem Rechner ausgeführt werden – installiere also nur, was du vertraust. Und cargo publish ist endgültig: Eine einmal veröffentlichte Version lässt sich auf crates.io nicht wieder löschen oder überschreiben – prüfe vorher mit --dry-run.
Weiterführende Links
- Das Cargo-Buch – offizielle Cargo-Dokumentation mit Referenz und Anleitungen (englisch)
- crates.io – die zentrale Registry für Rust-Crates (englisch)
- Rust – offizielle Website – Einstieg, Installation und Lernressourcen