Aplicações de linha de comando

Por que Rust?

Escudo com uma marca de verificação

Sólido e rápido

Mesmo se você estiver escrevendo pequenos scripts de uso único, você pode ter a confiança que será rápido, fácil de testar, e com mensagens úteis.

Garantias do Rust
caixa com marca de verificação

Fácil distribuição

Compile tudo para um único binário—seus usuários não precisam instalar um runtime ou bibliotecas extras.

Como distribuir código em Rust
Uma anotação e uma engrenagem

Configuração robusta

Manipule arquivos de configuração entre de plataformas com facilidade. Rust cuidará dos namespaces e formatos para você.

Comece a configurar
Manual de ajuda

Manuais? pronto.

Gere manuais para sua aplicação automaticamente. Apenas empacote os arquivos gerados e está pronto.

Aprenda como
Canos

Dados entram, dados saem

Além de conversar com humanos, Rust tem ótimas ferramentas para lhe ajudar a falar com máquinas.

Comunique-se com máquinas
3 pedaços de madeira empilhados

Registro flexível

É fácil adicionar registros de saída (logs), e ainda mais fácil de configurar diferentes saídas e estilos

Registre, rastreie, compreenda

Uma base de código sustentável

estrutura de uma aplicação de linha de comando

Capture erros agora

E se o arquivo de configuração estiver faltando ou corrompido? E se o valor de uma variável de ambiente específica estiver vazia? Esses são casos fáceis de esquecer. Mas graças a forma com que erros são tratados e ao design de suas bibliotecas, Rust irá te apontar essas situações de "E se?" antes mesmo de rodar o seu programa.

Tratamento de erros em Rust
ferramentas de linha de comando não são bichos de sete cabeças

Estenda facilmente depois

Rust permite que você organize se código de maneira flexível. comece com apenas um arquivo e, quando você precisar de mais funcionalidade, refatore sua aplicação com confiança de que nada irá quebrar.

Refatoração em Rust

Comece agora!

Escrever uma aplicação de linha de comando é uma ótima maneira de aprender Rust.

Definas suas entradas

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

Crie suas ferramentas

use quicli::prelude::*;
use structopt::StructOpt;

fn main() -> CliResult {
    let args = Cli::from_args();
    read_file(&args.file)?
        .lines()
        .take(args.num)
        .for_each(|line| println!("{}", line));
    Ok(())
}
Aprenda mais com o livro sobre aplicações de linha de comando

Uso em produção

logo da Sentry
Um dos motivos de ter gostado de Rust é o ecossistema entorno do crates.io. [...] Já existe uma ótima infraestrutura para criar aplicações de linha de comando incríveis.

– Armin Ronacher, Rust na Sentry – PolyConf 2017


Não tenho nenhum arrependimento em viver com essa base de código. [...] Isso fui como um bônus adicional para mim: Usar Rust para criar apps para a linha de comando. É fantástico poder compilar as ferramentas para diversos sistemas.

– Fletcher Nichol, Levando Rust para Produção – RustFest Kyiv

Logo do Habitat