00
:
00
:
00
:
00
•Corso SEO AI - Usa SEOEMAIL al checkout per il 30% di sconto

Comandi Cargo in Rust

Cargo è lo strumento integrato di Rust per la compilazione, gestione delle dipendenze, testing, documentazione e pubblicazione dei progetti.

Creare un Progetto

# Progetto binario (eseguibile)
cargo new mio_progetto

# Progetto libreria
cargo new mia_libreria --lib

# Inizializzare in una directory esistente
cargo init
cargo init --lib

Compilazione

# Compila in modalità debug (veloce, non ottimizzata)
cargo build

# Compila in modalità release (ottimizzata)
cargo build --release

# Controlla errori senza generare il binario (più veloce)
cargo check

Il binario si trova in target/debug/ o target/release/.

Esecuzione

# Compila ed esegue
cargo run

# Con argomenti per il programma
cargo run -- arg1 arg2

# In modalità release
cargo run --release

Testing

# Esegui tutti i test
cargo test

# Test specifico per nome
cargo test nome_test

# Solo doc-test
cargo test --doc

# Mostra output di println
cargo test -- --nocapture

# Test in un singolo thread
cargo test -- --test-threads=1

# Esegui test ignorati
cargo test -- --ignored

# Test di un modulo specifico
cargo test modulo::sotto_modulo

Documentazione

# Genera la documentazione HTML
cargo doc

# Genera e apre nel browser
cargo doc --open

# Includi elementi privati
cargo doc --document-private-items

# Documentazione senza dipendenze
cargo doc --no-deps

Formattazione e Linting

# Formatta il codice secondo le convenzioni Rust
cargo fmt

# Verifica la formattazione (senza modificare)
cargo fmt --check

# Linting avanzato con Clippy
cargo clippy

# Clippy che blocca su warning
cargo clippy -- -D warnings

Gestione Dipendenze

# Aggiungi una dipendenza
cargo add serde

# Con features
cargo add serde --features derive

# Versione specifica
cargo add tokio@1.0

# Dipendenza di sviluppo
cargo add --dev criterion

# Rimuovi una dipendenza
cargo remove serde

# Aggiorna dipendenze
cargo update

# Mostra albero delle dipendenze
cargo tree

Benchmark

# Esegui benchmark (richiede nightly o crate come criterion)
cargo bench

# Benchmark specifico
cargo bench nome_bench

Pubblicazione

# Login su crates.io
cargo login

# Verifica prima di pubblicare
cargo publish --dry-run

# Pubblica il crate
cargo publish

# Pacchetta il crate
cargo package

Pulizia

# Rimuovi la directory target
cargo clean

Configurazione Cargo.toml

[package]
name = "mio-progetto"
version = "0.1.0"
edition = "2024"
authors = ["Nome <email@esempio.com>"]
description = "Descrizione del progetto"
license = "MIT"
repository = "https://github.com/utente/progetto"

[dependencies]
serde = { version = "1.0", features = ["derive"] }
tokio = { version = "1", features = ["full"] }

[dev-dependencies]
criterion = "0.5"

[profile.release]
opt-level = 3
lto = true

[profile.dev]
opt-level = 0
debug = true

Comandi Aggiuntivi (Plugin)

# Installa un sotto-comando
cargo install cargo-watch
cargo install cargo-expand
cargo install cargo-tarpaulin

# Watch: ricompila automaticamente ai cambiamenti
cargo watch -x run

# Expand: mostra il codice dopo l'espansione delle macro
cargo expand

# Tarpaulin: code coverage
cargo tarpaulin

Conclusione

Cargo centralizza tutto il workflow di sviluppo Rust in un unico strumento. Dalla creazione del progetto alla pubblicazione su crates.io, passando per compilazione, testing, documentazione e linting, Cargo rende lo sviluppo Rust produttivo e piacevole. Usa cargo clippy e cargo fmt regolarmente per mantenere il codice pulito e idiomatico.