Clap — um 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 e para que serve?

Clap (Command Line Argument Parser) é um dos frameworks mais populares e poderosos para criar interfaces de linha de comando (CLI) na linguagem Rust. Ele permite que desenvolvedores descrevam rápida e facilmente argumentos, flags, subcomandos e gerem ajuda automaticamente. Clap é usado em projetos conhecidos como ripgrep, fd e bat. Graças à tipagem estrita do Rust e às macros, o Clap garante segurança em tempo de compilação e elimina a necessidade de análise manual de strings.

Instalação

Adicione a dependência no Cargo.toml:

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

A flag derive ativa o suporte a macros procedurais — esta é a maneira mais conveniente de usar.

Funcionalidades principais

  • Análise declarativa — descrição de argumentos através de structs e atributos.
  • Geração automática de ajuda (--help).
  • Suporte a subcomandos (ex.: git clone, git push).
  • Validação de tipos — números, strings, flags, enumerações.
  • Autocompletar para Bash/Zsh/Fish.
  • Saída de erros colorida.

Exemplo de código em Rust

Vamos criar uma calculadora simples com dois modos: adição e subtração.

use clap::Parser;

#[derive(Parser)]#[command(name = "calc", version = "1.0", about = "Calculadora simples")]struct Cli { #[command(subcommand)] command: Commands,}

#[derive(clap::Subcommand)]enum Commands { /// Somar dois números Add { a: f64, b: f64 }, /// Subtrair b de a Sub { a: f64, b: f64 },}

fn main() { let cli = Cli::parse(); match cli.command { Commands::Add { a, b } => println!("Resultado: {}", a + b), Commands::Sub { a, b } => println!("Resultado: {}", a - b), }}

Execução: cargo run -- add 10 5 exibirá Resultado: 15.

Quando usar

Clap é ideal para qualquer ferramenta CLI em Rust — desde utilitários simples até aplicações complexas de múltiplos níveis. Use-o se você precisa de um analisador de argumentos confiável, documentado e rápido com o mínimo de código. Graças às macros derive, você obtém tipagem estrita e geração automática de ajuda sem boilerplate.

Se o seu projeto exige alta performance (ex.: processamento de logs em tempo real) ou uma hierarquia complexa de comandos, Clap é a melhor escolha. Ele também suporta validadores personalizados e análise de variáveis de ambiente.

Conclusão

Clap é o padrão de facto para CLI no ecossistema Rust. Ele combina a conveniência das bibliotecas Python (argparse, click) com a performance e segurança do Rust. Comece com cargo add clap --features derive e crie seu primeiro CLI em 5 minutos.

Recommendations