Creo que bastantes personas crean herramientas CLI/TUI en Rust por ventajas como su rendimiento y el despliegue en un solo binario.
Herramientas como Textual de Python o Ink de JS tienen una sintaxis relativamente cómoda, pero a veces preocupan las dependencias de runtime o el overhead de rendimiento. En el lado de Rust, ratatui tiene un buen ecosistema, pero ajustar el layout sigue tomando bastante tiempo.
Por eso hice dos cosas.
1. tui.builders — UI de terminal en el navegador
Es un editor para diseñar visualmente y exportar código Rust.
https://tui.builders
Si arrastras widgets y configuras propiedades en el inspector,
el código se genera con un mapeo 1:1:
- Inspector: width=30, padding=2, border=rounded
- Código: .w(30).p(2).border(Border::Rounded)
2. SuperLightTUI — una librería TUI para Rust
Diseñada para este mapeo 1:1.
CSS flexbox + Tailwind
Usa un enfoque de clases utilitarias, así que si tienes experiencia en desarrollo web
puedes armar layouts sin aprendizaje adicional.
slt::run(|ui| {
ui.bordered(Border::Rounded).p(2).gap(1).col(|ui| {
ui.text("hello").bold().fg(Color::Cyan);
if ui.button("click").clicked { count += 1; }
});
});
Un solo closure es toda la app. Se renderiza en 3 líneas sin struct App, event loop
o implementación de traits.
- 2 dependencias (
crossterm+unicode-width), 0unsafe - renderizado immediate-mode, ~1 ms por frame
- más de 50 widgets (gráficas, tablas, imágenes, widgets de IA, etc.)
- también se puede usar solo como librería, sin el editor
Espero que esto sea útil para quienes quieren mantener el rendimiento de Rust TUI
sin sacrificar velocidad de desarrollo.
- tui.builders: https://tui.builders
- GitHub: https://github.com/subinium/SuperLightTUI
- crates.io: cargo add superlighttui
2 comentarios
Me daba flojera usar Ratatui, así que al final simplemente no lo usé, ¡pero aquí le dieron justo al clavo con sus desventajas! Está buenísimo jajaja
¡Guau! ¡Qué bueno!