Applicazioni a linea di comando

Perché Rust?

Scudo con segno di spunta

Robusto e veloce

Anche se devi solo scrivere un breve script da usare una volta e via, puoi star certo che sarà veloce, semplice da testare e che restituisca un output utile verso l'utente.

Le garanzie di Rust
Scatola con segno di spunta

Facile distribuzione

Compila tutta l'applicazione in un singolo file binario: i tuoi utenti non avranno bisogno di runtime o librerie installate.

Come rilasciare codice Rust
Un foglietto e un ingranaggio

Configurazione robusta

Gestisci i file di configurazione facilmente su più piattaforme. Rust gestirà i namespace e i vari formati al posto tuo.

Inizia a configurare
Documentazione

Documentazione? Fatto.

Genera automaticamente la documentazione per la tua applicazione: basta impacchettare i file generati e hai finito.

Scopri di più
Tubi

Dati in ingresso, dati in uscita

Oltre a parlare con gli umani, Rust possiede ottimi strumenti che ti aiutano a comunicare con le macchine.

Comunica con le macchine
3 ceppi di legno accatastati l'uno sull'altro

Logging flessibile

È facile aggiungere il logging ed è ancora più facile da configurare per target e stili differenti.

Logga, traccia, capisci

Una base di codice gestibile

struttura di una applicazione cli

Rileva gli errori ora

Cosa succede se il file di configurazione non si trova o è corrotto? E se il valore di una variabile di sistema non è impostato? Sono casi facili da dimenticare! Ma grazie alla gestione errori e al design delle proprie librerie, Rust ti farà presente questi casi ancora prima di eseguire la tua applicazione.

Gestione degli errori di Rust
la command line non è astrofisica

Facile da estendere in seguito

Rust ti aiuta a gestire il codice con flessibilità. Inizia partendo da un singolo file e quando hai bisogno di nuove feature, fai pure refactor in tranquillità sapendo che non romperai nulla.

Rust Refactoring

Inizia!

Scrivere un'applicazione a linea di commando è un ottimo modo per imparare Rust.

Definisci l'input

use clap::Parser;

/// Read some lines of a file
#[derive(Debug, Parser)]
struct Cli {
    /// Input file to read
    file: String,
    /// Number of lines to read
    #[structopt(short = 'n')]
    num: usize,
}

Scrivi il tuo tool

use std::{error::Error, fs::read_to_string};

fn main() -> Result<(), Box> {
    let args = Cli::parse();
    read_to_string(&args.file)?
        .lines()
        .take(args.num)
        .for_each(|line| println!("{}", line));
    Ok(())
}
Impara di più con il CLI book

Uso in produzione

logo sentry
Una delle ragioni per cui abbiamo apprezzato Rust è l'ecosistema crates.io [...] Ci sono tante soluzioni pronte all'uso per creare ottime interfacce a linea di comando.

– Armin Ronacher, Rust at Sentry – PolyConf 2017


Non ho nessun rimpianto da quando ho a che fare con questa codebase. [...] Usare Rust per creare CLI o applicazioni da console è per me un valore aggiunto. È veramente ottimo se devi compilare per differenti architetture.

– Fletcher Nichol, Taking Rust to Production – RustFest Kyiv

logo Habitat