¿Qué es Clap y para qué sirve?
Clap (Command Line Argument Parser) es uno de los frameworks más populares y potentes para crear interfaces de línea de comandos (CLI) en el lenguaje Rust. Permite a los desarrolladores describir rápida y cómodamente argumentos, flags, subcomandos y generar ayuda automáticamente. Clap se utiliza en proyectos conocidos como ripgrep, fd y bat. Gracias al tipado estricto de Rust y las macros, Clap proporciona seguridad en tiempo de compilación y elimina la necesidad de analizar cadenas manualmente.
Instalación
Añada la dependencia en Cargo.toml:
[dependencies]clap = { version = "4.5", features = ["derive"] }El flag derive incluye soporte para macros procedurales: esta es la forma más cómoda de uso.
Funciones principales
- Análisis declarativo — descripción de argumentos mediante estructuras y atributos.
- Generación automática de ayuda (
--help). - Soporte para subcomandos (por ejemplo,
git clone,git push). - Validación de tipos — números, cadenas, flags, enumeraciones.
- Autocompletado para Bash/Zsh/Fish.
- Salida de errores en color.
Ejemplo de código en Rust
Creemos una calculadora simple con dos modos: suma y resta.
use clap::Parser;
#[derive(Parser)]#[command(name = "calc", version = "1.0", about = "Calculadora simple")]struct Cli { #[command(subcommand)] command: Commands,}
#[derive(clap::Subcommand)]enum Commands { /// Sumar dos números Add { a: f64, b: f64 }, /// Restar 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), }}Ejecución: cargo run -- add 10 5 mostrará Resultado: 15.
Cuándo usarlo
Clap es ideal para cualquier herramienta CLI en Rust, desde utilidades simples hasta aplicaciones complejas de múltiples niveles. Úselo si necesita un analizador de argumentos robusto, documentado y rápido con una cantidad mínima de código. Gracias a las macros derive, obtiene un tipado estricto y generación automática de ayuda sin código repetitivo.
Si su proyecto requiere alto rendimiento (por ejemplo, procesamiento de registros en tiempo real) o una jerarquía de comandos compleja, Clap es la mejor opción. También admite validadores personalizados y análisis de variables de entorno.
Conclusión
Clap es el estándar de facto para CLI en el ecosistema de Rust. Combina la comodidad de las bibliotecas de Python (argparse, click) con el rendimiento y la seguridad de Rust. Comience con cargo add clap --features derive y cree su primer CLI en 5 minutos.
También en la biblioteca
Configuración de aplicaciones Swift (iOS/macOS): bibliotecas y herramientas
Colas de tareas para Swift: guía completa de GCD y Operation Queues
Contenedor de Dependency Injection para Go (Golang) — wire, dig, fx
Validación de datos en Kotlin: bibliotecas, enfoques y ejemplos de código