Slint es un toolkit declarativo de GUI para crear interfaces de usuario nativas en aplicaciones Rust, C++, JavaScript o Python.
elixir-crab/gpui
Una biblioteca de Elixir para crear aplicaciones de escritorio nativas con una interfaz declarativa renderizada por el framework GPUI, basado en Rust.
- Estrellas
- 102
- Forks
- 4
- Issues abiertos
- 12
- Último commit
- hace 4 días
¿Qué es?
GPUI permite a los desarrolladores crear aplicaciones de escritorio nativas con Elixir. El estado de la aplicación, la distribución de las ventanas y las declaraciones de la interfaz permanecen en Elixir, mientras que Rust gestiona el bucle de eventos nativo, las ventanas, el renderizado, el foco, IME y la accesibilidad. La interfaz se escribe con plantillas al estilo de HEEx, y los eventos de activación accesibles, del puntero y del teclado vuelven a Elixir mediante una ruta de eventos tipada.
La misma aplicación declarativa puede ejecutarse en una pantalla nativa local, una pantalla de prueba determinista que no requiere servidor de pantalla o una pantalla remota en otra máquina. Los controles habituales están disponibles en el paquete independiente gpui_components, respaldado por gpui-component. Se incluyen archivos NIF precompilados para Linux, macOS con Apple silicon y Windows x86-64.
El repositorio es un umbrella de Mix que incluye los paquetes gpui, gpui_components y gpui_native, además de ejemplos como una transcripción de texto enriquecido, un panel del runtime de BEAM y una galería de componentes.
Funciones clave
- 01Interfaz declarativa escrita en Elixir con plantillas al estilo de HEEx
- 02Rust y GPUI gestionan las ventanas nativas, el foco, IME y la accesibilidad
- 03Pantalla de prueba determinista que se ejecuta sin servidor de pantalla
- 04Pantallas remotas que mantienen la sesión autoritativa en otra máquina
- 05Edición persistente de texto nativo con posiciones UTF-16, deshacer/rehacer e IME
- 06Colecciones virtualizadas y texto enriquecido seleccionable
Casos de uso
- Crear una herramienta o un panel de escritorio nativo sobre un sistema existente basado en Elixir/OTP
- Escribir pruebas de interfaz para vistas de escritorio de Elixir sin servidor de pantalla
- Ejecutar una aplicación controlada por Elixir cuyas ventanas se muestran en otra máquina
- Añadir controles habituales, como botones y formularios, a una aplicación de escritorio de Elixir
Inicio rápido
- 1
Clona el repositorio
- 2
Descarga las dependencias
mix deps.get - 3
Ejecuta el ejemplo de ventana de saludo
RUST_FONTCONFIG_DLOPEN=1 mix run apps/gpui/examples/getting_started/01_hello_window.exs
Antes de usarlo
- Los binarios nativos precompilados solo cubren Linux, macOS con Apple silicon y Windows x86-64.
- Las funciones de visualización nativas requieren un servidor de pantalla local y los requisitos previos de la plataforma.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es gpui?
- Una biblioteca de Elixir para crear aplicaciones de escritorio nativas con una interfaz declarativa renderizada por el framework GPUI, basado en Rust. GPUI permite a los desarrolladores crear aplicaciones de escritorio nativas con Elixir. El estado de la aplicación, la distribución de las ventanas y las declaraciones de la interfaz permanecen en Elixir, mientras que Rust gestiona el bucle de eventos nativo, las ventanas, el renderizado, el foco, IME y la accesibilidad. La interfaz se escribe con plantillas al estilo de HEEx, y los eventos de activación accesibles, del puntero y del teclado vuelven a Elixir mediante una ruta de eventos tipada.
- ¿gpui es gratuito? ¿Qué licencia tiene?
- gpui es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿gpui sigue mantenido?
- Mantenimiento activo. El último commit de gpui fue el 3 nov 2026.
- ¿Para qué puedo usar gpui?
- Crear una herramienta o un panel de escritorio nativo sobre un sistema existente basado en Elixir/OTP Escribir pruebas de interfaz para vistas de escritorio de Elixir sin servidor de pantalla Ejecutar una aplicación controlada por Elixir cuyas ventanas se muestran en otra máquina Añadir controles habituales, como botones y formularios, a una aplicación de escritorio de Elixir
- ¿Cómo se instala gpui?
- Clona el repositorio Descarga las dependencias: mix deps.get Ejecuta el ejemplo de ventana de saludo: RUST_FONTCONFIG_DLOPEN=1 mix run apps/gpui/examples/getting_started/01_hello_window.exs
- ¿Dónde consigo gpui?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/elixir-crab/gpui
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Una biblioteca GUI declarativa y nativa, multiplataforma, para crear aplicaciones de escritorio y móviles en Rust.
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.
Kit de GUI de escritorio en Rust con más de 75 componentes con estilo para crear aplicaciones multiplataforma con el framework GPUI.
Un toolkit de GUI para Python que crea aplicaciones con los widgets nativos de cada sistema operativo.
Framework de Go para crear aplicaciones de escritorio con una interfaz web en el webview del sistema operativo o una interfaz nativa dibujada en la GPU.