Um mecanismo de UI nativa multiplataforma em que a lógica do app roda em Go e cada plataforma renderiza usando suas próprias views nativas.
marc2332/freya
Biblioteca de GUI declarativa, nativa e multiplataforma para criar apps desktop e mobile em Rust.
- Estrelas
- 3,307
- Forks
- 152
- Issues abertas
- 42
- Último commit
- há 12 horas
O que é?
Freya é uma biblioteca de GUI declarativa para Rust que renderiza interfaces nativas em desktops e outras plataformas. Os desenvolvedores descrevem a UI com funções e componentes Rust, e o estado definido com hooks como use_state aciona automaticamente a renderização novamente das partes que dependem dele. A biblioteca usa seu próprio núcleo reativo, em vez do Dioxus, desde a versão 0.4.
A biblioteca inclui componentes prontos, como Button, Switch, Slider, VirtualScrollView, Calendar e ColorPicker. Flags de feature opcionais adicionam um editor de código baseado em tree-sitter, um visualizador de Markdown, roteamento, estado global via freya-radio, i18n baseado em Fluent, estilização Material Design, renderização de HTML/CSS via Blitz, um emulador de terminal com suporte a PTY e criação de gráficos com Plotters.
Freya também oferece testes headless por meio do freya-testing, que pode simular cliques e renderizar a UI em um arquivo de imagem, além de um app de devtools para inspecionar a árvore de componentes.
Recursos principais
- 01Modelo declarativo de componentes com estado baseado em hooks, que renderiza novamente automaticamente a UI dependente.
- 02Componentes integrados, como Button, Switch, Slider, Calendar e VirtualScrollView.
- 03Editor de código opcional que usa Rope para texto e tree-sitter para realce de sintaxe.
- 04Roteamento, gerenciamento de estado global e internacionalização baseada em Fluent por meio de flags de feature.
- 05Emulador de terminal integrado com suporte a PTY e renderização de HTML/CSS via Blitz.
- 06Testes headless com a possibilidade de renderizar a UI em um arquivo.
Casos de uso
- Criar ferramentas ou utilitários nativos para desktop usando apenas Rust.
- Criar ferramentas para desenvolvedores, como editores de código ou interfaces baseadas em terminal.
- Prototipar dashboards de visualização de dados com o recurso de criação de gráficos.
- Escrever testes de UI para aplicativos de GUI em Rust sem abrir uma janela.
Início rápido
- 1
Adicione Freya ao Cargo.toml
- 2
Clone o repositório com os submódulos
git clone --recurse-submodules https://github.com/marc2332/freya.git - 3
Acesse o diretório do projeto
cd freya - 4
Execute um exemplo
cargo run --example counter
Antes de usar
- Para executar os exemplos, é necessário ter um ambiente de desenvolvimento Rust e os submódulos do git.
- Compilações windows-gnu no Windows podem apresentar erros de compilação.
Em coleções
Tópicos
Perguntas frequentes
- O que é freya?
- Biblioteca de GUI declarativa, nativa e multiplataforma para criar apps desktop e mobile em Rust. Freya é uma biblioteca de GUI declarativa para Rust que renderiza interfaces nativas em desktops e outras plataformas. Os desenvolvedores descrevem a UI com funções e componentes Rust, e o estado definido com hooks como use_state aciona automaticamente a renderização novamente das partes que dependem dele. A biblioteca usa seu próprio núcleo reativo, em vez do Dioxus, desde a versão 0.4.
- freya é gratuito? Qual é a licença?
- freya é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- freya ainda é mantido?
- Manutenção ativa. O último commit de freya foi em 6 de nov. de 2026.
- Para que posso usar freya?
- Criar ferramentas ou utilitários nativos para desktop usando apenas Rust. Criar ferramentas para desenvolvedores, como editores de código ou interfaces baseadas em terminal. Prototipar dashboards de visualização de dados com o recurso de criação de gráficos. Escrever testes de UI para aplicativos de GUI em Rust sem abrir uma janela.
- Como instalar freya?
- Adicione Freya ao Cargo.toml Clone o repositório com os submódulos: git clone --recurse-submodules https://github.com/marc2332/freya.git Acesse o diretório do projeto: cd freya Execute um exemplo: cargo run --example counter
- Onde consigo freya?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/marc2332/freya
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Slint é um toolkit declarativo de GUI para criar interfaces nativas em apps Rust, C++, JavaScript ou Python.
Uma biblioteca Elixir para criar aplicativos desktop nativos com UI declarativa renderizada pelo framework GPUI, baseado em Rust.
Um framework de UI multiplataforma para .NET, usado para criar apps desktop, mobile, embarcados e WebAssembly com C# e XAML.
Framework Python para criar apps web, desktop e mobile com interface baseada em Flutter, sem precisar de experiência com frontend.
Uma engine em Rust para criar interfaces nativas multiplataforma, com apps em Rust ou TSX renderizados com os widgets de cada plataforma.