Lær Rust-programmering · leksjon

Håndtere avhengigheter med crates

Forstå hvordan Cargo håndterer eksterne crates (biblioteker), og hvordan De kan publisere Deres egne for fellesskapet.

Leksjon 2 av 312 trinn

Håndtere avhengigheter med crates er en gratis leksjon i Lær Rust-programmering på CoddyKit. Dette er leksjon 2 av 3. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Lær Rust-programmering, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Lær Rust-programmering inneholder totalt 3 leksjoner.

Hva er crates og Cargo?

I Rust er en crate den grunnleggende enheten for kompilering og distribusjon. Tenk på den som en pakke eller et bibliotek som inneholder koden Deres.

Cargo er Rusts offisielle pakkebehandler og byggesystem. Den håndterer alt fra å opprette nye prosjekter til å administrere avhengigheter, kompilere kode og kjøre tester. Den er Deres beste venn når De utvikler i Rust!

Filen `Cargo.toml`

Alle Rust-prosjekter som administreres av Cargo, har en Cargo.toml-fil i rotkatalogen. Dette er prosjektets manifestfil, skrevet i TOML (Tom's Obvious, Minimal Language).

Den definerer metadata om prosjektet og viser, viktigst av alt, prosjektets avhengigheter.

Prosjektkonfigurasjon

[package]-delen i Cargo.toml inneholder viktig informasjon om craten Deres:

  • name: Navnet på craten.
  • version: Den gjeldende versjonen.
  • edition: Hvilken Rust-utgave som skal brukes (for eksempel 2021).
  • authors: Hvem som opprettet den.

Disse opplysningene er avgjørende, særlig hvis De planlegger å publisere craten.

Legge til avhengigheter

For å bruke eksterne biblioteker (andre crates) i prosjektet viser De dem under [dependencies]-delen i Cargo.toml.

Når De bygger prosjektet, laster Cargo automatisk ned og kompilerer disse avhengighetene fra crates.io, Rusts sentrale pakkeregister.

Syntaks for avhengigheter

Slik deklarerer De en avhengighet i Cargo.toml:

[dependencies] rand = "0.8.5"

Dette forteller Cargo at versjon 0.8.5 av rand-craten skal hentes. De kan også angi versjonsintervaller eller lokale stier.

Bruke en crate: Eksempel

La oss legge til rand-craten for å generere et tilfeldig tall. Kontroller først at rand = "0.8.5" står i [dependencies]. Bruk den deretter i koden:

use rand::Rng; // Import the Rng trait

fn main() {
  let mut rng = rand::thread_rng(); // Create a random number generator
  let n: u8 = rng.gen_range(1..=10); // Generate a number between 1 and 10 (inclusive)
  println!("Your random number is: {}", n);
}

Filen `Cargo.lock`

Etter at De har bygget med avhengigheter, oppretter Cargo en Cargo.lock-fil. Denne filen registrerer de nøyaktige versjonene av alle direkte og transitive avhengigheter som brukes i prosjektet.

Den sørger for at alle som arbeider med prosjektet, bruker de samme avhengighetsversjonene, noe som gir reproduserbare bygg på tvers av ulike miljøer.

Oppdatere avhengigheter

Over tid kan avhengighetene Deres få nye versjoner med feilrettinger eller nye funksjoner. For å oppdatere dem bruker De kommandoen cargo update.

Denne kommandoen kontrollerer crates.io for nyere versjoner som samsvarer med versjonskravene i Cargo.toml, og oppdaterer Cargo.lock tilsvarende.

Publisere Deres egen crate

Vil De dele den flotte Rust-koden Deres med fellesskapet? De kan publisere Deres egen crate på crates.io!

Før publisering må De kontrollere at Cargo.toml har riktige metadata, for eksempel description, license og repository-lenker.

Publiseringskommandoer

Prosessen er enkel:

  1. Logg inn: Bruk cargo login <token> med et API-token fra crates.io.
  2. Publiser: Kjør cargo publish fra rotmappen til prosjektet.

Cargo utfører kontroller, pakker koden og laster den opp, slik at andre kan bruke den!

Hurtigsjekk: Cargo og crates

Hvilke av følgende påstander om Rusts pakkehåndtering med Cargo er riktige?

Oppsummering: Håndtering av avhengigheter

Du har lært at Cargo er viktig for å håndtere Rust-prosjekter og avhengighetene deres!

  • Crates er gjenbrukbare kodepakker.
  • Cargo.toml definerer prosjektet og avhengighetene det har.
  • Cargo.lock sørger for reproduserbare bygg.
  • Du kan publisere egne crates til crates.io.

Dette kraftige systemet gjør det svært effektivt og pålitelig å dele og gjenbruke kode i Rust.

Gratis å komme i gang

Lær deg Rust med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
39
Leksjoner
144

Ofte stilte spørsmål

Er leksjonen «Håndtere avhengigheter med crates» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Lær Rust-programmering, inkludert «Håndtere avhengigheter med crates», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Lær Rust-programmering inneholder totalt 3 leksjoner.

Hva lærer jeg i «Håndtere avhengigheter med crates»?

Forstå hvordan Cargo håndterer eksterne crates (biblioteker), og hvordan De kan publisere Deres egne for fellesskapet. Du øver på Lær Rust-programmering med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Lær Rust-programmering?

Ingen tidligere erfaring er nødvendig. Lær Rust-programmering på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 3.

Hvor lang tid tar leksjonen «Håndtere avhengigheter med crates»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Lær Rust-programmering-leksjonen?

Ja. Alle Lær Rust-programmering-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Organisere kode med moduler
  2. Håndtere avhengigheter med crates
  3. Robust feilhåndtering med `Result`
← Tilbake til Lær Rust-programmering