Cargo ist das Build-Tool für die Programmiersprache Rust. Es lädt Ihr Projekt herunter, kompiliert und testet es. Noch wichtiger ist, dass Cargo Ihre Projektabhängigkeiten verwaltet. Cargo hat eine sehr gute Dokumentation und ist sehr zugänglich. Cargo wurde in Rust geschrieben und wird das wichtigste Tool in Ihrer Rust-Toolchain sein! Werfen wir einen genaueren Blick darauf.
Installation der Fracht
Cargo wird automatisch mit Rust installiert. Auf einem Mac können Sie Rust installieren, indem Sie Folgendes eingeben:
$ brew install rust
$ cargo --version
cargo 1.29.0 (524a578d7 2018-08-05)
Allgemeine Befehle
Cargo bietet Befehle, die Sie von einem Build-Tool erwarten würden, wie 'update', 'test', 'build' und 'run'.
$ cargo
USAGE:
cargo [OPTIONS] [SUBCOMMAND]
build Compile the current project
check Analyze the current project and report errors, but don't build object files
clean Remove the target directory
doc Build this project's and its dependencies' documentation
new Create a new cargo project
init Create a new cargo project in an existing directory
run Build and execute src/main.rs
test Run the tests
bench Run the benchmarks
update Update dependencies listed in Cargo.lock
search Search registry for crates
publish Package and upload this project to the registry
install Install a Rust binary
uninstall Uninstall a Rust binary
Grundlegender Arbeitsablauf
Cargo verfügt über einen grundlegenden Arbeitsablauf wie das Erstellen eines neuen Projekts, das Testen des Codes, das Ausführen des Projekts und das Erstellen des Projekts zu einer statischen Binärdatei.
$ pwd
~/projects
# creating a new project
$ cargo new hello-rust
Created binary (application) `hello-rust` project
cd hello-rust
# testing
$ cargo test
Compiling hello-rust v0.1.0 (file:///Users/dennis/projects/hello-rust)
Finished dev [unoptimized + debuginfo] target(s) in 1.15s
Running target/debug/deps/hello_rust-0b720b8081218362
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
# running
$ cargo run
Compiling hello-rust v0.1.0 (file:///Users/dennis/projects/hello-rust)
Finished dev [unoptimized + debuginfo] target(s) in 2.47s
Running `target/debug/hello-rust`
Hello, world!
# building
$ cargo build
Finished dev [unoptimized + debuginfo] target(s) in 0.37s
# runnning
$ ./target/debug/hello-rust
Hello, world!
Fracht.toml
Cargo.toml beschreibt Ihr Projekt und die Abhängigkeiten. Die Datei wird von uns, den Entwicklern, bearbeitet. Um dem Projekt Abhängigkeiten hinzuzufügen, fügen Sie neue Einträge im Abschnitt package hinzu.
[package]
name = "hello-rust"
version = "0.1.0"
authors = ["dennis <dennisvriend@binx.io>"]
[dependencies]
Verwaltung von Abhängigkeiten
Cargo stellt crates.io, die zentrale Paketregistrierungsstelle, zur Verfügung, die als Ort zum Auffinden und Herunterladen von Paketen dient. Cargo ist so konfiguriert, dass es standardmäßig verwendet wird, um angeforderte Pakete zu finden.
Lassen Sie uns die
[package]
name = "hello-rust"
version = "0.1.0"
authors = ["dennis <dennisvriend@binx.io>"]
[dependencies]
rusoto_core = "0.35.0"
rusoto_s3 = "0.35.0"
Auflistung der Eimer in unserem Konto
Lassen Sie uns die Datei src/main.rs bearbeiten:
extern crate rusoto_core;
extern crate rusoto_s3;
use rusoto_core::Region;
use rusoto_s3::{S3Client, S3};
fn main() {
let client = S3Client::new(Region::EuWest1);
match client.list_buckets().sync() {
Ok(output) => {
match output.buckets {
Some(s3_bucket_lists) => {
println!("Buckets:");
for bucket in s3_bucket_lists {
println!("Name: {}, CreationDate: {}", bucket.name.unwrap_or_default(), bucket.creation_date.unwrap_or_default());
}
}
None => println!("No buckets in account!"),
}
}
Err(error) => {
println!("Error: {:?}", error);
}
}
}
Fazit
Cargo ist das Build- und Abhängigkeitsmanagement-Tool für die Programmiersprache Rust. Cargo bietet Funktionen zum Erstellen, Testen und Verwalten von Abhängigkeiten für Rust-Projekte. Cargo verwendet crates.io als zentrale Paketregistrierungsstelle. Cargo verwendet die Datei Cargo.toml zur Modellierung des Projekts und der Abhängigkeiten. Cargo ist sehr einfach zu bedienen und wenn Sie bereits Maven, Gradle, SBT oder Go verwendet haben, sollte Ihnen Cargo sehr vertraut sein.
Verfasst von
Dennis Vriend
Contact
