Clap — poderoso framework CLI para Rust

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

O que é Clap?

Clap (Command Line Argument Parser) é um framework popular e poderoso para criar interfaces de linha de comando (CLI) em Rust. Ele permite que desenvolvedores definam facilmente argumentos, flags, subcomandos e gerem ajuda automaticamente.

Por que usar Clap?

Escrever um parser de argumentos manualmente é uma tarefa trabalhosa e propensa a erros. Clap cuida de toda a rotina: validação de tipos, verificação de parâmetros obrigatórios, geração de dicas e saída de help colorida. Graças aos derive-macros, o código se torna declarativo e conciso.

Instalação

Adicione ao Cargo.toml:

[dependencies]clap = { version = "4.5", features = ["derive"] }

Funcionalidades principais

  • Parsing automático de argumentos e flags
  • Suporte a subcomandos aninhados (estilo git)
  • Geração de ajuda e versão
  • Validação de valores (intervalos, lista de valores possíveis)
  • Autocompletar para bash/zsh/fish/powershell
  • Saída de erros colorida

Exemplo de código

use clap::Parser;

#[derive(Parser)]#[command(name = "greet")]#[command(about = "Saudação ao usuário")]struct Cli { /// Nome do usuário name: String,

/// Número de repetições #[arg(short, long, default_value_t = 1)] count: u32,

/// Exibir em maiúsculas #[arg(short, long)] uppercase: bool,}

fn main() { let cli = Cli::parse(); for _ in 0..cli.count { let msg = format!("Olá, {}!", cli.name); if cli.uppercase { println!("{}", msg.to_uppercase()); } else { println!("{}", msg); } }}

Quando usar Clap?

Use Clap se você estiver desenvolvendo:

  • Utilitários de linha de comando (ex.: grep, sed, curl)
  • Ferramentas para DevOps e CI/CD
  • CLIs complexos com muitos subcomandos (como git ou cargo)
  • Qualquer projeto em Rust que exija entrada do usuário via terminal

Clap é o padrão de facto para CLI em Rust. Ele combina máxima performance com facilidade de desenvolvimento.

Recommendations