- Biblioteca de componentes UI para crear aplicaciones de escritorio multiplataforma aprovechando el framework GPUI basado en Rust
- Ofrece más de 60 componentes UI con estilo nativo, combinando la estética de diseño de macOS y Windows con la estética moderna de shadcn/ui
- Integra funciones avanzadas como tablas virtualizadas, editor de código de alto rendimiento, renderizado de Markdown/HTML y visualización de gráficos
- Diseño enfocado en la extensibilidad y la personalización, con sistema de temas, multilenguaje (i18n) y layout con acoplamiento
- Dentro del ecosistema Rust, se diferencia frente a Iced, egui y Qt por su estilo moderno de UI y su rendimiento para manejar grandes volúmenes de datos
Resumen del proyecto
- gpui-component es una colección de componentes UI de escritorio multiplataforma escrita en Rust, basada en el motor de renderizado GPUI
- Licencia Apache-2.0
Características principales
- Conjunto amplio de componentes: incluye más de 60 elementos UI, con opciones como botones, listas, tablas, gráficos y editores
- Diseño con sensación nativa: implementa una interfaz moderna inspirada en los controles predeterminados de macOS y Windows, combinada con el estilo de shadcn/ui
- Uso sencillo: la estructura de componentes sin estado RenderOnce permite escribir código simple e intuitivo
- Sistema de temas y colores: Theme y ThemeColor permiten múltiples temas y configuraciones basadas en variables
- Layout flexible: con Dock layout es posible ubicar paneles, redimensionarlos y crear composiciones en mosaico libremente
- Renderizado de alto rendimiento: Virtualized Table/List muestra con fluidez incluso grandes volúmenes de datos
- Renderizado de contenido: soporte nativo para Markdown y HTML simple
- Funciones de gráficos: permite visualizar datos con gráficos integrados
- Editor de código: incluye un editor de código de alto rendimiento basado en LSP con soporte para hasta 200 mil líneas
- Compatible con diagnóstico, autocompletado, hover y otras funciones
- Resaltado de sintaxis: usa Tree Sitter para ofrecer resaltado tanto en el editor como en Markdown
Stack técnico y estadísticas
- Composición de lenguajes: Rust 98.2%, Tree-sitter Query 0.8%, HTML 0.2%, Shell 0.2%, Python 0.1%, C 0.1%
- Métricas del repositorio: 5.4k stars, 223 forks, más de 45 contribuidores
- Lanzamiento más reciente: v0.3.1 (27 de octubre de 2025)
Significado general
- gpui-component es visto dentro del ecosistema Rust como un nuevo framework de UI de escritorio que combina UI/UX moderna con renderizado de alto rendimiento
- Complementa las limitaciones de frameworks GUI existentes en Rust y ofrece funciones orientadas al trabajo real, como manejo de grandes volúmenes de datos, tematización e integración de Markdown
- Es un proyecto que atrae atención como posible candidato a capa UI estandarizada para el desarrollo futuro de aplicaciones multiplataforma basadas en Rust
1 comentarios
Comentarios de Hacker News
En el ecosistema de UI de Rust, esto parece ser la colección de componentes más pulida que he visto hasta ahora.
Aún casi no tiene casos de uso, pero la documentación se está organizando cada vez mejor.
Otro ejemplo con un nivel similar de madurez es fyrox-ui, aunque casi no se usa fuera del motor fyrox.
La UI en Rust está madurando poco a poco, pero frameworks populares como iced, egui, dioxus y slint todavía parecen quedarse cortos en cuanto a la madurez de sus componentes.
Como actualización, este proyecto muestra un gran avance dentro del ecosistema de UI en Rust.
Se puede ejecutar la app de galería de widgets, donde se ven todos los componentes, aquí — basta con
cargo run --releaseIncluso el ejemplo más simple tiene más de 1000 dependencias. Depende de toolkits como GTK, GDK y pango. Se siente un poco extraño que dependa además de otros toolkits
Es amargo ver que muchas tecnologías base del open source las crean empresas de trading o cripto. Aun así, es positivo que aporten algo a la sociedad
Me pregunto si los toolkits de UI “modernos” ya no tienen editores visuales de UI.
Qt permitía construir interfaces solo con arrastrar y soltar usando herramientas como QtCreator o QtDesigner.
Además, algunas filas de la tabla comparativa sobre Qt están mal — por ejemplo, el tamaño mínimo del binario o la descripción de QSyntaxHighlighter
Por desgracia, esto es un framework. Es decir, necesita tener su propio event loop.
En entornos donde ya existe otro loop, integrarlo es difícil. En cambio, egui tiene una estructura más tipo biblioteca que simplemente se llama en cada frame
Me pregunto si la accesibilidad para lectores de pantalla funciona bien
Me pregunto si “nativo” significa simplemente que no es web, o si usa los widgets nativos del sistema operativo. En el mundo Java también se sufrió mucho esa diferencia
Me pregunto si este framework implementó accesibilidad (a11y). Las UI en Rust a veces se ven bonitas, pero cuando surge un requisito de accesibilidad hay que reescribir todo desde cero
La funcionalidad de listas y tablas virtualizadas es realmente excelente. En muchos frameworks de UI era incómodo porque había que implementarlo uno mismo
Rust tiene muchos toolkits GUI, pero le faltan colecciones de componentes reutilizables.
Esta colección parece útil, pero la mayoría de los componentes se parecen a los de frameworks web. Lo único realmente específico de nativo sería el webview. Para cosas como el cuadro de diálogo de abrir archivo hay que usar bibliotecas externas como rfd, así que se rompe la consistencia del estilo