Ecosistema Rust
Herramientas CLI, runtime async, librerías core y frameworks frontend que adopto para desarrollar sistemas confiables y de alto rendimiento en Rust.
Herramientas CLI
| Herramienta | Reemplaza | Motivo |
|---|---|---|
| bat | cat | Highlighting, números de línea e integración con Git. |
| delta | diff | Diffs de Git con muy buena presentación y syntax highlighting. |
| eza | ls | Colores, íconos y estado Git. Sucesor activo de exa. |
| fd | find | Sintaxis simple, defaults inteligentes y soporte para .gitignore. |
| hyperfine | time | Benchmarking CLI estadístico para comparar comandos con rigor. |
| just | make | Task runner moderno con sintaxis simple. |
| ripgrep (rg) | grep | Búsqueda recursiva ultrarrápida, respeta .gitignore. |
| starship | PS1, oh-my-zsh prompts | Prompt cross-shell rápido, configurable y portable. |
| zoxide | cd | Autojump inteligente que aprende tus directorios más usados. |
Cargo y Toolchain
| Herramienta | Motivo |
|---|---|
| cargo-nextest | Test runner moderno, paralelizado y con mejor reporting que cargo test. |
| cargo-watch | Recompilación incremental al guardar; clave para feedback loops rápidos. |
| clippy | Linter oficial. No negociable en todo proyecto Rust. |
| rust-analyzer | El language server oficial para Rust. |
| rustfmt | Formatter oficial; idiomático y consistente. |
Librerías Core
| Crate | Motivo |
|---|---|
| anyhow / thiserror | Pareja idiomática: anyhow para apps, thiserror para librerías. |
| clap | Parser de argumentos CLI estándar de facto. |
| serde | Serialización y deserialización canónica del ecosistema. |
| tracing | Logging estructurado y spans para diagnóstico async. |
Runtime Async y Web
Frontend y Desktop (Rust → WASM)
Fundamentos y Patrones de Diseño en Rust
| Patrón | Contexto |
|---|---|
| Patrón Newtype | Envolver tipos primitivos en tuple structs definidas por el usuario para forzar seguridad de tipos y límites de dominio en tiempo de compilación. |
| Resource Acquisition Is Initialization (RAII) | Asegurar que los recursos (archivos, memoria, cerrojos) se liberen automáticamente cuando su variable propietaria sale de su ámbito (scope) mediante el trait Drop. |
| Abstracciones de Costo Cero (Zero-Cost Abstractions) | Filosofía central de diseño de Rust: lo que no usas no lo pagas, y las abstracciones se compilan a código tan eficiente como el ensamblador escrito a mano. |