- Biblioteca de componentes de UI que permite criar aplicativos desktop multiplataforma usando o framework GPUI baseado em Rust
- Oferece mais de 60 componentes de UI com estilo nativo, combinando a linguagem de design do macOS e do Windows com a estética moderna do shadcn/ui
- Traz recursos avançados integrados, como tabelas virtualizadas, editor de código de alto desempenho, renderização de Markdown/HTML e visualização de gráficos
- Projeto com foco em extensibilidade e personalização, com sistema de temas, suporte multilíngue (i18n) e layout com docking
- No ecossistema Rust, se diferencia de Iced, egui e Qt pelo estilo moderno de UI e pelo desempenho no processamento de grandes volumes de dados
Visão geral do projeto
- gpui-component é uma coleção de componentes de UI desktop multiplataforma escrita em Rust e baseada no motor de renderização GPUI
- Licença Apache-2.0
Principais recursos
- Conjunto rico de componentes: inclui mais de 60 elementos de UI, com opções como botões, listas, tabelas, gráficos e editores
- Design com sensação nativa: inspirado nos controles padrão do macOS e do Windows e combinado com o estilo do shadcn/ui para criar uma interface moderna
- Usabilidade simples: a estrutura de componentes sem estado RenderOnce permite escrever código de forma simples e intuitiva
- Sistema de temas e cores: Theme e ThemeColor oferecem suporte a múltiplos temas e configurações baseadas em variáveis
- Layout flexível: com Dock layout, é possível posicionar painéis, redimensioná-los e montar composições em mosaico livremente
- Renderização de alto desempenho: Virtualized Table/List permite exibir grandes volumes de dados com fluidez
- Renderização de conteúdo: suporte nativo a Markdown e HTML simples
- Recursos de gráficos: visualização de dados com gráficos integrados
- Editor de código: inclui um editor de código de alto desempenho baseado em LSP com suporte a até 200 mil linhas
- Compatível com diagnóstico, autocompletar, hover e outros recursos
- Destaque de sintaxe: usando Tree Sitter, oferece syntax highlighting tanto no editor quanto em Markdown
Stack técnico e estatísticas
- Composição de linguagens: Rust 98.2%, Tree-sitter Query 0.8%, HTML 0.2%, Shell 0.2%, Python 0.1%, C 0.1%
- Métricas do repositório: 5.4k stars, 223 forks, mais de 45 contribuidores
- Release mais recente: v0.3.1 (27 de outubro de 2025)
Significado em resumo
- gpui-component é visto no ecossistema Rust como um novo framework de UI desktop que combina UI/UX moderna com renderização de alto desempenho
- Complementa limitações de frameworks GUI existentes em Rust e oferece recursos práticos como processamento de grandes volumes de dados, tematização e integração com Markdown
- É um projeto que vem ganhando atenção como candidato a camada de UI padronizada para o desenvolvimento de apps multiplataforma em Rust
1 comentários
Comentários do Hacker News
No ecossistema de UI em Rust, isso parece ser a coleção de componentes mais completa que vi até agora
Ainda quase não há casos de uso, mas a documentação está ficando cada vez mais bem organizada
Outro exemplo com nível parecido de acabamento é o fyrox-ui. Mas ele quase não é usado fora da engine fyrox
A UI em Rust está amadurecendo aos poucos, mas frameworks populares como iced, egui, dioxus e slint ainda parecem ficar devendo no nível de acabamento dos componentes
Atualizando: este projeto mostra um grande avanço no ecossistema de UI em Rust.
Dá para executar aqui um app de galeria de widgets com todos os componentes — é só usar
cargo run --releaseAté o exemplo mais simples tem mais de 1000 dependências. Ele depende de toolkits como GTK, GDK e pango. Essa estrutura de depender de outros toolkits parece meio estranha
É amargo ver que muita infraestrutura de base do open source está sendo criada por empresas de trading e cripto. Ainda assim, é positivo que estejam contribuindo com alguma coisa para a sociedade
Fico me perguntando se esses toolkits de UI “modernos” hoje em dia não têm editor visual de UI
O Qt permitia criar UIs só com drag and drop usando ferramentas como QtCreator ou QtDesigner
Além disso, alguns itens da tabela comparativa com Qt estão errados — por exemplo, o tamanho mínimo do binário ou a explicação sobre o QSyntaxHighlighter
Infelizmente isso é um framework. Ou seja, ele precisa ter seu próprio event loop
Em ambientes que já têm outro loop, a integração fica difícil. Já o egui tem uma estrutura mais de biblioteca, sendo apenas chamado a cada frame
Fico curioso se a acessibilidade para leitores de tela funciona bem
Queria entender se “nativo” aqui significa só que não é web, ou se usa os widgets padrão do sistema operacional. O ecossistema Java também sofreu bastante com essa diferença
Queria saber se este framework implementou acessibilidade (a11y). As UIs em Rust às vezes são bonitas, mas quando surge exigência de acessibilidade é preciso reescrever tudo do zero
O recurso de listas e tabelas virtualizadas é realmente excelente. Em muitos frameworks de UI, isso precisa ser implementado manualmente, o que é inconveniente
Rust tem muitos toolkits de GUI, mas faltam coleções de componentes reutilizáveis
Esta coleção parece útil, mas a maioria dos componentes é parecida com a lista de componentes de frameworks web. O único elemento mais específico de nativo parece ser o webview. Para coisas como caixa de diálogo de abrir arquivo, ainda é preciso usar bibliotecas externas como rfd, o que quebra a consistência visual