Repolode
emilk

emilk/egui

Uma biblioteca de GUI em modo imediato fácil de usar para Rust, que roda na web e nativamente e pode ser incorporada a engines de jogos.

Estrelas
31,659
Forks
2,228
Issues abertas
1,068
Último commit
há 11 horas

O que é?

egui é uma biblioteca de GUI em modo imediato escrita em Rust puro. Em vez de montar uma árvore persistente de widgets com callbacks, você chama funções de UI a cada frame, como ui.button("Save").clicked(), e age diretamente com base no resultado. Isso mantém simples o código da GUI da aplicação e evita estados que ficam dessincronizados com a exibição.

A biblioteca em si não cuida de janelas, coleta de entrada nem renderização. Ela apenas produz uma malha de triângulos a cada frame, e uma camada de integração a desenha. O framework oficial eframe fornece essa camada para criar apps destinados à Web, Linux, Mac, Windows e Android; também é possível incorporar egui a outras engines por meio de integrações da comunidade.

O projeto inclui widgets como rótulos, sliders, caixas de seleção, seletores de cores e editores de texto, além de layouts, janelas redimensionáveis, áreas de rolagem, imagens e suporte a acessibilidade via AccessKit. O README observa que a API ainda está mudando e que novas versões podem incluir alterações incompatíveis.

Recursos principais

  • 01API em modo imediato: a UI é escrita como chamadas de função comuns executadas a cada frame
  • 02Roda na web via WebAssembly e nativamente no Linux, Mac, Windows e Android por meio do eframe
  • 03Widgets integrados, incluindo sliders, edição de texto, seletores de cores e seções recolhíveis
  • 04Layouts flexíveis com arranjos horizontais, verticais, em colunas e com quebra de linha
  • 05Suporte a acessibilidade via AccessKit no Windows e macOS
  • 06Integra-se a engines de jogos renderizando a malha de triângulos que produz

Casos de uso

  • Criar uma ferramenta desktop multiplataforma em Rust usando uma única base de código
  • Adicionar painéis de depuração ou ajuste a uma engine de jogos ou simulação
  • Criar um app web simples em Rust compilado para WebAssembly
  • Prototipar rapidamente ferramentas interativas de visualização de dados

Início rápido

  1. 1

    Execute o app de demonstração do egui localmente

    cargo run --release -p egui_demo_app
  2. 2

    Leia a documentação oficial e os exemplos para criar seu próprio app

Antes de usar

  • A API ainda está mudando, e novas versões podem incluir alterações incompatíveis.
  • No Linux, é preciso instalar alguns pacotes do sistema antes de executar o app de demonstração.
  • Não é uma GUI com aparência nativa e é voltada apenas para desenvolvedores Rust.

Tópicos

Perguntas frequentes

O que é egui?
Uma biblioteca de GUI em modo imediato fácil de usar para Rust, que roda na web e nativamente e pode ser incorporada a engines de jogos. egui é uma biblioteca de GUI em modo imediato escrita em Rust puro. Em vez de montar uma árvore persistente de widgets com callbacks, você chama funções de UI a cada frame, como ui.button("Save").clicked(), e age diretamente com base no resultado. Isso mantém simples o código da GUI da aplicação e evita estados que ficam dessincronizados com a exibição.
egui é gratuito? Qual é a licença?
egui é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
egui ainda é mantido?
Manutenção ativa. O último commit de egui foi em 21 de out. de 2026.
Para que posso usar egui?
Criar uma ferramenta desktop multiplataforma em Rust usando uma única base de código Adicionar painéis de depuração ou ajuste a uma engine de jogos ou simulação Criar um app web simples em Rust compilado para WebAssembly Prototipar rapidamente ferramentas interativas de visualização de dados
Como instalar egui?
Execute o app de demonstração do egui localmente: cargo run --release -p egui_demo_app Leia a documentação oficial e os exemplos para criar seu próprio app
Onde consigo egui?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/emilk/egui

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados