Cargo | |
---|---|
Basisdaten | |
Maintainer | Rust Project Developers |
Erscheinungsjahr | 1. Februar 2014 |
Aktuelle Version | 0.73.1 (26. August 2023) |
Betriebssystem | Plattformunabhängig |
Programmiersprache | Rust |
Kategorie | Paketverwaltung |
Lizenz | MIT-Lizenz, Apache-Lizenz, Version 2.0 |
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
Cargo wird als zentrales Werkzeug für die Verwaltung von Rust-Paketen verwendet. Es übernimmt dabei für jedes Paket folgende Aufgaben:
- 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
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
Das Paketmanifest liegt in der Cargo.toml sieht beispielhaft folgendermaßen aus:
[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.
Die Datei Cargo.lock enthält die exakten Revisionsdaten der entsprechenden Abhängigkeiten und wird automatisiert von Cargo generiert und gepflegt.
crates.io
crates.io | |
---|---|
Sprachen |
Englisch |
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. 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.
Weblinks
Einzelnachweise
- ↑ www.crunchbase.com. In: CrunchBase.
- ↑ Release 0.73.1. 26. August 2023 (abgerufen am 18. September 2023).
- 1 2 github.com. (abgerufen am 18. Februar 2021).
- ↑ github.com.
- ↑ Why Cargo exists. Abgerufen am 22. April 2018.
- ↑ Cargo.toml vs Cargo.lock. Abgerufen am 22. April 2019.
- ↑ The Manifest Format - The Cargo Book. Abgerufen am 23. April 2019.
- ↑ Publishing on crates.io. Abgerufen am 22. April 2019.
- ↑ Programmiersprache: Rust 1.34 erlaubt Alternativen zu crates.io. Abgerufen am 22. April 2019.