Kennisbank › Go Rust › cargo
go rust starter 27 August 2026

cargo

Cargo: Rusts build-systeem en pakketbeheerder

Cargo: Rusts build-systeem en packagemanager

Dit artikel legt uit hoe Cargo werkt — het standaard build-systeem en pakketbeheerder van Rust — en is bedoeld voor ontwikkelaars die Rust-projecten willen opzetten, compileren, testen en beheren.

Vereisten

- Rust geïnstalleerd via `rustup` (versie 1.70 of hoger aanbevolen) - Basiskennis van de commandoregel - Toegang tot crates.io voor het downloaden van dependencies (internetverbinding)

Controleer uw Rust-versie met:

rustc --version
cargo --version

Stappen

1. Een nieuw project aanmaken

Gebruik `cargo init` om een project te starten in de huidige map:

cargo init --bin

Voor een bibliotheek (library) gebruikt u `--lib`:

cargo init --lib

Dit genereert een `Cargo.toml`-bestand en een bronbestand (`src/main.rs` voor binaries, `src/lib.rs` voor libraries). Het `Cargo.toml`-bestand definieert alle projectmetadata en dependencies.

2. Dependencies toevoegen

Zoek naar beschikbare crates op crates.io:

cargo search serde

Voeg een dependency toe door deze rechtstreeks aan `Cargo.toml` toe te voegen:

[dependencies]
serde = "1.0"

Cargo downloadt, compileert en stelt de crate beschikbaar binnen uw project. De versie in `Cargo.toml` volgt semantische versioning — Cargo selecteert automatisch de nieuwste compatibele versie.

3. Het project compileren

Bouw uw project in debug-modus:

cargo build

Cargo roept intern `rustc` aan en verwerkt alle dependencies. Voor een geoptimaliseerde productie-build:

cargo build --release

De `--release`-vlag schakelt optimalisaties in die snellere en compactere code produceren.

4. Tests uitvoeren

Rust heeft ingebouwde testondersteuning. Voer alle tests uit:

cargo test

Filter tests op naam:

cargo test test_name

Beperk het aantal gelijktijdige testthreads voor het debuggen van data-races of het beheren van systeembelasting:

cargo test -- --test-threads=1

Voor workspaces met meerdere packages:

cargo test --workspace

5. Directe compileropties doorgeven

Gebruik `cargo rustc` om specifieke opties rechtstreeks aan `rustc` door te geven:

cargo rustc -- -C target-cpu=native

Deze opdracht optimaliseert code voor de exacte processor waarop u bouwt.

6. Continue feedback met tools

Installeer `bacon` voor automatische checks bij codewijzigingen:

cargo install bacon
bacon

Bacon voert continu `cargo check` uit wanneer u bestanden wijzigt en geeft directe feedback over typefouten en compilatieproblemen. Soortgelijke tools kunnen ook `cargo test` of `cargo clippy` automatisch draaien.

7. Offline documentatie raadplegen

Open de officiële Rust-documentatie lokaal:

rustup doc

Dit geeft toegang tot The Rust Programming Language book, de Cargo book en de Rust Reference — allemaal offline beschikbaar.

8. Per directory een specifieke toolchain kiezen

Gebruik `rustup override` om per project een specifieke Rust-versie of nightly-build te selecteren:

rustup override set nightly

Dit is noodzakelijk wanneer verschillende projecten afhankelijk zijn van verschillende Rust-versies. Verwijder de override met:

rustup override unset

Verificatie

Controleer of alles correct werkt:

cargo build
cargo test

Een succesvolle build produceert een uitvoerbaar bestand in `target/debug/` (of `target/release/` na `--release`). Tests rapporteren het aantal geslaagde en gefaalde tests. Bekijk uw projectstructuur:

ls -la
cat Cargo.toml

Veelgestelde problemen

1. Dependency kan niet worden gevonden

Probleem: `cargo build` meldt "no matching package found" of een netwerkfout.

Oplossing: Controleer uw internetverbinding en of de crate bestaat op crates.io. Werk uw lokale registry-index bij:

cargo update

2. Versieconflict tussen dependencies

Probleem: Twee crates vereisen verschillende, incompatibele versies van dezelfde dependency.

Oplossing: Bekijk de dependency-tree:

cargo tree

Pas de versievereisten in `Cargo.toml` aan of gebruik `cargo update -p <package>` om naar een compatibele versie te gaan.

3. Build mislukt met "linker not found"

Probleem: Uw systeem mist de C-linker die Rust nodig heeft.

Oplossing: Installeer de build-essential tools voor uw besturingssysteem. Op Ubuntu/Debian:

sudo apt install build-essential

Op macOS:

xcode-select --install

Cargo is geen losse tool — het vormt de ruggengraat van elke Rust-workflow, van het eerste `cargo init` tot het deployen van geoptimaliseerde binaries. De integratie met rustup, crates.io en de compiler maakt het mogelijk om projecten te beheren zonder de onderliggende complexiteit van build-systemen te doorgronden. Naarmate uw projecten groeien naar workspaces, cross-compilatie of custom toolchains, blijkt Cargo schaalbaar — maar de vraag is niet wat Cargo kan, maar welke workflow u eromheen bouwt.

← Terug naar kennisbank
← Terug naar kennisbank