Un motor de UI nativa multiplataforma en el que la lógica de la app se ejecuta en Go y cada plataforma dibuja con sus propias vistas nativas.
marc2332/freya
Una biblioteca GUI declarativa y nativa, multiplataforma, para crear aplicaciones de escritorio y móviles en Rust.
- Estrellas
- 3,344
- Forks
- 151
- Issues abiertos
- 42
- Último commit
- hace 7 horas
¿Qué es?
Freya es una biblioteca GUI declarativa para Rust que renderiza interfaces nativas en escritorio y otras plataformas. Los desarrolladores describen la UI mediante funciones y componentes de Rust, y el estado definido con hooks como use_state activa automáticamente el nuevo renderizado de las partes que dependen de él. Desde la versión 0.4, se basa en su propio núcleo reactivo en lugar de Dioxus.
La biblioteca incluye varios componentes listos para usar, como Button, Switch, Slider, VirtualScrollView, Calendar y ColorPicker. Las feature flags opcionales añaden un editor de código basado en tree-sitter, un visor de Markdown, routing, estado global mediante freya-radio, i18n basada en Fluent, estilos de Material Design, renderizado de HTML/CSS mediante Blitz, un emulador de terminal con soporte para PTY y gráficos mediante Plotters.
Freya también ofrece pruebas headless a través de freya-testing, que permite simular clics y renderizar la UI en un archivo de imagen, además de una aplicación devtools para inspeccionar el árbol de componentes.
Funciones clave
- 01Modelo declarativo de componentes con estado basado en hooks, que actualiza automáticamente la UI dependiente.
- 02Componentes integrados como Button, Switch, Slider, Calendar y VirtualScrollView.
- 03Editor de código opcional que usa Rope para el texto y tree-sitter para el resaltado de sintaxis.
- 04Routing, gestión del estado global e internacionalización basada en Fluent mediante feature flags.
- 05Emulador de terminal integrado con soporte para PTY y renderizado de HTML/CSS mediante Blitz.
- 06Pruebas headless con la posibilidad de renderizar la UI en un archivo.
Casos de uso
- Crear herramientas o utilidades nativas de escritorio usando Rust puro.
- Crear herramientas para desarrolladores, como editores de código o interfaces de terminal.
- Prototipar dashboards de visualización de datos con la función de gráficos.
- Escribir pruebas de UI para aplicaciones GUI de Rust sin abrir una ventana.
Inicio rápido
- 1
Añade Freya a Cargo.toml
- 2
Clona el repositorio con los submódulos
git clone --recurse-submodules https://github.com/marc2332/freya.git - 3
Ve al directorio del proyecto
cd freya - 4
Ejecuta un ejemplo
cargo run --example counter
Antes de usarlo
- Para ejecutar los ejemplos, necesitas un entorno de desarrollo de Rust y los submódulos de git.
- Las compilaciones windows-gnu en Windows pueden dar errores de compilación.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es freya?
- Una biblioteca GUI declarativa y nativa, multiplataforma, para crear aplicaciones de escritorio y móviles en Rust. Freya es una biblioteca GUI declarativa para Rust que renderiza interfaces nativas en escritorio y otras plataformas. Los desarrolladores describen la UI mediante funciones y componentes de Rust, y el estado definido con hooks como use_state activa automáticamente el nuevo renderizado de las partes que dependen de él. Desde la versión 0.4, se basa en su propio núcleo reactivo en lugar de Dioxus.
- ¿freya es gratuito? ¿Qué licencia tiene?
- freya es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿freya sigue mantenido?
- Mantenimiento activo. El último commit de freya fue el 7 nov 2026.
- ¿Para qué puedo usar freya?
- Crear herramientas o utilidades nativas de escritorio usando Rust puro. Crear herramientas para desarrolladores, como editores de código o interfaces de terminal. Prototipar dashboards de visualización de datos con la función de gráficos. Escribir pruebas de UI para aplicaciones GUI de Rust sin abrir una ventana.
- ¿Cómo se instala freya?
- Añade Freya a Cargo.toml Clona el repositorio con los submódulos: git clone --recurse-submodules https://github.com/marc2332/freya.git Ve al directorio del proyecto: cd freya Ejecuta un ejemplo: cargo run --example counter
- ¿Dónde consigo freya?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/marc2332/freya
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Slint es un toolkit declarativo de GUI para crear interfaces de usuario nativas en aplicaciones Rust, C++, JavaScript o Python.
Una biblioteca de Elixir para crear aplicaciones de escritorio nativas con una interfaz declarativa renderizada por el framework GPUI, basado en Rust.
Framework de UI multiplataforma para .NET que permite crear aplicaciones de escritorio, móviles, integradas y WebAssembly con C# y XAML.
Framework de Python para crear aplicaciones web, de escritorio y móviles con una interfaz basada en Flutter, sin necesidad de experiencia en frontend.
Un motor en Rust para crear interfaces nativas multiplataforma: permite desarrollar apps en Rust o TSX y renderizarlas con los widgets propios de cada plataforma.