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.