Cargo (Software)

Cargo

Basisdaten

Hauptentwickler | Rust Project Developers
Erscheinungsjahr | 1\. Februar 2014[1]
Aktuelle Version | 0.90.0[2]
(7\. August 2025)
Betriebssystem | Plattformunabhängig
Programmier­sprache | Rust
Kategorie | Paketverwaltung
Lizenz | MIT-Lizenz[3][4], Apache-Lizenz, Version 2.0[3]
doc.rust-lang.org/cargo

Cargo ist eine Paketverwaltungssoftware für Rust-Pakete, die als Crate bezeichnet werden. Cargo wird über das Rust-Toolchain-Installationsprogramm `rustup` standardmäßig installiert, für die Verwaltung von Paket-Metadaten greift Cargo auf das Dateiformat TOML zurück.

## Funktionen

[Bearbeiten | Quelltext bearbeiten]

Cargo wird als zentrales Werkzeug für die Verwaltung von Rust-Paketen verwendet. Es übernimmt dabei für jedes Paket folgende Aufgaben:[5]

* die Verwaltung der Metadaten über das Paket
* die Auflösung und Kompilierung der Abhängigkeiten
* den Aufruf des Referenz-Compilers `rustc` mit den passenden Parametern
* die Forcierung von Rust-Konventionen für eine einheitliche Paketverwaltung

## Paketaufbau

[Bearbeiten | Quelltext bearbeiten]

Rust-Pakete bestehen aus einem definierten Aufbau:

* die Dateien Cargo.toml und Cargo.lock im Wurzelverzeichnis
* den Quellcodedateien in src/
* optional:
* Integrationstests in tests/
* Beispielen in examples/
* Benchmarks in benches/

### Manifest

[Bearbeiten | Quelltext bearbeiten]

Das Paketmanifest liegt in der Cargo.toml sieht beispielhaft folgendermaßen aus:[6]

[package]
name = "hello_world"
version = "0.1.0"
authors = ["Your Name <you@example.com>"]

[dependencies]
regex = "1"
rand = { git = "https://github.com/rust-lang-nursery/rand.git" }
lazy_static = "*"

[dev-dependencies]
mysql = "16.0.1"

Unter der Kategorie `package` werden grundlegende Informationen über das Paket wie Name und Version, sowie die beteiligten Autoren genannt. Die Kategorie `dependencies` umfasst alle Abhängigkeiten des Paketes, Kategorien wie `dev-dependencies` oder `profile.*`ermöglichen es, gesonderte Einstellungen für Tests oder ähnliche Szenarien festzulegen.[7]

Die Datei Cargo.lock enthält die exakten Revisionsdaten der entsprechenden Abhängigkeiten und wird automatisiert von Cargo generiert und gepflegt.

## crates.io

[Bearbeiten | Quelltext bearbeiten]

crates.io

Sprachen  | Englisch
Registrierung | nein, nur für den Upload eigener Crates
https://crates.io

Das offizielle Repository für Crates wird unter crates.io gehostet. Für den Upload eigener Crates wird ein GitHub-Account benötigt.[8] Seit Rust 1.34.0 können auch alternative Repositories in Cargo eingebunden werden, hiervor war ausschließlich die Benutzung von crates.io möglich.[9]

## Weblinks

[Bearbeiten | Quelltext bearbeiten]

* The Cargo Book

## Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]

1. ↑ www.crunchbase.com. In: Crunchbase.
2. ↑ 0.90.0. 7. August 2025 (abgerufen am 11. August 2025).
3. ↑ a b github.com. (abgerufen am 18. Februar 2021).
4. ↑ github.com.
5. ↑ Why Cargo exists. Abgerufen am 22. April 2018.
6. ↑ Cargo.toml vs Cargo.lock. Abgerufen am 22. April 2019.
7. ↑ The Manifest Format - The Cargo Book. Abgerufen am 23. April 2019.
8. ↑ Publishing on crates.io. Abgerufen am 22. April 2019.
9. ↑ Programmiersprache: Rust 1.34 erlaubt Alternativen zu crates.io. Abgerufen am 22. April 2019.