Pular para o conteúdo
NovidadesIA

Repositórios em Alta

egui ultrapassa 31 mil estrelas com GUI em Rust para web e nativo

Biblioteca de interface em modo imediato ganha 1.124 estrelas no período e se consolida como opção simples para criar apps em Rust que rodam no navegador e no desktop.

Edição: Anderson Gomes
· 5 min de leitura

egui ultrapassa 31 mil estrelas com GUI em Rust para web e nativo
Imagem: Reprodução · user-images.githubusercontent.com · reprodução · licença não declarada

egui é uma biblioteca de interface gráfica em Rust que adota o paradigma de "modo imediato" (immediate mode), no qual a interface é redesenhada a cada quadro em vez de manter um árbol de objetos persistente. O projeto, publicado no GitHub por emilk e criado em 13 de janeiro de 2019, está entre os repositórios de código aberto em alta, com 1.124 estrelas conquistadas no período analisado. Seu problema central é uma dor conhecida de quem programa em Rust: criar interfaces gráficas costuma exigir frameworks complexos, e o egui se propõe a ser a forma mais simples de construir tanto aplicativos nativos quanto apps web.

Dados rápidos

  • Repositório: emilk/egui
  • Licença: Apache-2.0
  • Linguagem: Rust
  • Estrelas: 31.762 (1.124 no período); forks: 2.256
  • Posição no ranking: não informado no repositório
  • Data da consulta: 2026-10-26

Qual problema resolve

Escrever interfaces gráficas em Rust historicamente envolve bibliotecas que exigem gerenciamento manual de estado, callbacks e estruturas de dados espalhadas pelo código. O egui inverte essa lógica: o programador descreve a interface de forma linear, a cada quadro, e o estado vive em variáveis comuns da aplicação.

O README afirma que o objetivo é ser "a biblioteca de GUI mais fácil de usar em Rust" e a forma mais simples de criar um aplicativo web em Rust. Como o código roda tanto nativamente quanto no navegador via WebAssembly, o mesmo projeto atende desktop e web sem reescritas.

A biblioteca também se integra a motores de jogos: segundo o projeto, o egui pode ser usado "em qualquer lugar onde seja possível desenhar triângulos texturizados", o que facilita incorporá-lo a engines existentes para criar painéis de depuração e ferramentas internas.

Como funciona

No modo imediato, cada quadro a aplicação chama funções que desenham widgets e leem interações no mesmo lugar. Não há callbacks nem sincronização entre interface e estado. Um exemplo do README mostra a simplicidade:

ui.heading("My egui Application");
ui.horizontal(|ui| {
    ui.label("Your name: ");
    ui.text_edit_singleline(&mut name);
});
ui.add(egui::Slider::new(&mut age, 0..=120).text("age"));
if ui.button("Increment").clicked() {
    age += 1;
}
ui.label(format!("Hello '{name}', age {age}"));

O eframe é o framework oficial para empacotar apps egui para Web, Linux, Mac, Windows e Android. O backend nativo de renderização é o egui-wgpu, baseado na biblioteca wgpu. Para compilar a aplicação de demonstração no Linux, o README indica instalar dependências do sistema antes:

sudo apt-get install -y libclang-dev libgtk-3-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev libssl-dev

No Fedora Rawhide, o comando indicado é dnf install clang clang-devel clang-tools-extra libxkbcommon-devel pkg-config openssl-devel libxcb-devel gtk3-devel atk fontconfig-devel. Para testar localmente, o projeto recomenda cargo run --release -p egui_demo_app. Para quem quer começar, há exemplos na pasta examples/ e um template de app web em github.com/emilk/eframe_template.

Casos de uso

  • Ferramentas internas de estúdios de jogos: a integração com engines permite criar painéis de ajuste e depuração dentro do próprio editor do jogo, usando os tópicos de game development associados ao projeto.
  • Aplicações web em Rust: com o template do eframe, o mesmo código de interface publica um app que roda em qualquer navegador com suporte a Wasm e WebGL.
  • Ferramentas visuais profissionais: o Rerun Viewer, citado no README, é um exemplo de aplicação com aparência profissional construída com egui.
  • Protótipos rápidos com sliders, campos de texto, botões, checkboxes e editores: a lista de widgets inclui também seletor de cores, hiperlinks e spinners.
  • Desenho 2D customizado: a biblioteca epaint oferece uma API simples de gráficos 2D para pintura personalizada.

O que diferencia de alternativas

Comparado a toolkits retentivos de estado (o modelo tradicional, em que a interface é um conjunto de objetos que persiste), o egui elimina callbacks e a sincronização manual entre dados e tela — o README lista como meta "pure immediate mode: no callbacks". A biblioteca também destaca portabilidade, o mesmo código servindo para web e nativo, e ausência total de código unsafe, um selo de segurança relevante em Rust.

Há diferenças assumidas em relação a concorrentes: o README declara como não-objetivos "ser a biblioteca de GUI mais poderosa" e "ter aparência nativa", ou seja, o foco está em simplicidade e portabilidade, não em fidelidade visual ao sistema operacional.

Limitações e cuidados

O projeto deixa claro no README que está "em desenvolvimento ativo", que "não afirma ter atingido todos esses objetivos" e que novas versões trarão mudanças que quebram compatibilidade — um fator a considerar em projetos de longo prazo. O número de issues abertas, 1.081, também indica uma base de código em movimento constante.

Sobre segurança, o README exibe selo de unsafe proibido, mas o dossiê registra licença Apache-2.0 enquanto os badges do README apontam para MIT e Apache em arquivos separados; quem for usar em produção deve confirmar os termos na raiz do repositório. Dados como posição exata no ranking e mantenedor institucional não informado no repositório. A última release é a 0.37.0, de 15 de outubro de 2026, e o último commit é de 22 de outubro de 2026, o que confirma manutenção recente.

Resumo rápido

  • Projeto: emilk/egui, biblioteca de GUI em modo imediato para Rust
  • Licença: Apache-2.0
  • Linguagem: Rust
  • Estrelas: 31.762 (1.124 no período), 2.256 forks
  • Ranking: não informado no repositório
  • Risco principal: mudanças que quebram compatibilidade entre versões, já previstas pelo próprio projeto

Fontes

  • Repositório GitHub: https://github.com/emilk/egui
  • Última release (0.37.0): https://github.com/emilk/egui/releases
  • Homepage e demo web: https://www.egui.rs/
  • Rust
  • Apache-2.0
  • Repositórios em Alta
  • GitHub Trending

Fonte: Repositório no GitHub · Como produzimos as matérias