14 pontos por subinium 2026-03-17 | 2 comentários | Compartilhar no WhatsApp

Acredito que muita gente esteja criando ferramentas CLI/TUI em Rust por causa de vantagens como o desempenho do Rust e a distribuição em binário único.

Ferramentas como o Textual do Python ou o Ink do JS têm uma sintaxe relativamente confortável, mas às vezes surgem preocupações com dependências de runtime ou overhead de desempenho. No lado do Rust, o ratatui tem um bom ecossistema, mas definir layouts ainda consome bastante tempo.

Por isso, criei duas coisas.

1. tui.builders — UI de terminal no navegador

É um editor que permite projetar visualmente e exportar código Rust.
https://tui.builders

Ao arrastar widgets e configurar propriedades no inspetor,
o código é gerado em mapeamento 1:1:

  • inspetor: width=30, padding=2, border=rounded
  • código: .w(30).p(2).border(Border::Rounded)

2. SuperLightTUI — projetada para esse mapeamento 1:1

É uma biblioteca Rust para TUI.

CSS flexbox + Tailwind
Ela usa o estilo de classes utilitárias, então, se você já tem experiência com desenvolvimento web,
consegue montar layouts sem precisar aprender algo novo.

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; }  
    });  
});  

Uma única closure é o aplicativo inteiro. Sem struct App, loop de eventos
ou implementação de trait, ele renderiza em 3 linhas.

  • 2 dependências (crossterm + unicode-width), 0 unsafe
  • renderização em modo imediato, ~1 ms por frame
  • mais de 50 widgets (gráficos, tabelas, imagens, widgets de IA etc.)
  • também pode ser usada só como biblioteca, sem o editor

Espero que isso ajude quem quer manter o desempenho das TUIs em Rust sem abrir mão da velocidade de desenvolvimento.

2 comentários

 
@deleted_gndfr0dev 2026-03-21

Eu usava Ratatui, mas era tão trabalhoso que acabei simplesmente largando; isso aqui ataca exatamente os pontos fracos! Muito bom mesmo kkk

 
kayws426 2026-03-17

Uau! Ficou muito bom!!