Zoeken…


Invoering

Cargo is de pakketbeheerder van Rust, gebruikt om kratten te beheren (de term van Rust voor bibliotheken / pakketten). Lading haalt voornamelijk pakketten op van crates.io en kan complexe afhankelijkheidsbomen beheren met specifieke versievereisten (met behulp van semantische versiebeheer). Cargo kan ook helpen bij het bouwen, uitvoeren en beheren van Rust-projecten met cargo build , cargo run en cargo test (naast andere handige opdrachten).

Syntaxis

  • cargo new crate_name [--bin]
  • lading init [--bin]
  • vracht build [--release]
  • vrachtrun [--release]
  • vrachtcontrole
  • vrachttest
  • vrachtbank
  • vracht update
  • vrachtpakket
  • vracht publiceren
  • cargo [un] installeer binary_crate_name
  • lading zoeken kratnaam
  • vrachtversie
  • vracht login api_key

Opmerkingen

  • Op dit moment is de cargo bench subcommand vereist de nachtelijke versie van de compiler om effectief te opereren.

Maak een nieuw project

Bibliotheek

cargo new my-library

Hiermee maakt u een nieuwe map met de naam my-library met het vrachtconfiguratiebestand en een brondirectory met een enkel Rust-bronbestand:

my-library/Cargo.toml
my-library/src/lib.rs

Deze twee bestanden bevatten al het basisskelet van een bibliotheek, zodat u meteen een cargo test kunt doen (vanuit de map van my-library ) om te controleren of alles werkt.

Binair

cargo new my-binary --bin

Hiermee maakt u een nieuwe map met de naam my-binary met een vergelijkbare structuur als een bibliotheek:

my-binary/Cargo.toml
my-binary/src/main.rs

Deze keer heeft cargo een eenvoudige Hello World-binary opgezet die we meteen kunnen uitvoeren met cargo run .


U kunt ook het nieuwe project in de huidige map maken met de opdracht init sub:

cargo init --bin

Verwijder net als hierboven de vlag --bin om een nieuw bibliotheekproject te maken. De naam van de huidige map wordt automatisch gebruikt als kratnaam.

Bouw project

debug

cargo build

Vrijlating

Bouwen met de vlag --release maakt bepaalde compileroptimalisaties mogelijk die niet worden uitgevoerd bij het bouwen van een debug-build. Hierdoor wordt de code sneller uitgevoerd, maar wordt de compilatietijd ook iets langer. Voor optimale prestaties moet deze opdracht worden gebruikt zodra een release-build gereed is.

cargo build --release

Lopende testen

Basisgebruik

cargo test

Programma-uitvoer weergeven

cargo test -- --nocapture

Voer een specifiek voorbeeld uit

cargo test test_name

Hallo wereldprogramma

Dit is een shell-sessie die laat zien hoe je een "Hallo wereld" -programma kunt maken en dit kunt uitvoeren met Cargo:

$ cargo new hello --bin
$ cd hello
$ cargo run
   Compiling hello v0.1.0 (file:///home/rust/hello)
     Running `target/debug/hello`
Hello, world!

Nadat u dit hebt gedaan, kunt u het programma bewerken door src/main.rs in een teksteditor.

Een krat publiceren

Om een krat op crates.io te publiceren, moet u inloggen met Cargo (zie ' Cargo verbinden met een Crates.io-account ').

Je kunt je krat inpakken en publiceren met de volgende opdrachten:

cargo package
cargo publish

Eventuele fouten in uw Cargo.toml bestand worden tijdens dit proces gemarkeerd. U moet ervoor zorgen dat u uw versie bijwerkt en ervoor zorgt dat uw .gitignore of Cargo.toml bestand ongewenste bestanden uitsluit.

Lading verbinden met een Crates.io-account

Accounts op crates.io worden gemaakt door in te loggen met GitHub; u kunt zich niet aanmelden met een andere methode.

Om uw GitHub-account aan crates.io te verbinden, klikt u op de knop ' Inloggen met GitHub ' in de menubalk bovenaan en geeft u crates.io toegang tot uw account. Je wordt dan aangemeld bij crates.io, ervan uitgaande dat alles goed is gegaan.

U moet dan uw API-sleutel vinden , die u kunt vinden door op uw avatar te klikken, naar ' Accountinstellingen ' te gaan en de lijn die er zo uitziet te kopiëren:

cargo login abcdefghijklmnopqrstuvwxyz1234567890rust

Dit moet in uw terminal / opdrachtregel worden geplakt en moet u authenticeren met uw lokale cargo .

Wees voorzichtig met uw API-sleutel - deze moet geheim worden gehouden, zoals een wachtwoord, anders kunnen uw kratten worden gekaapt!



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow