La organización de desarrollo de código abierto Linebender ha anunciado oficialmente el lanzamiento de los proyectos Xilem y Masonry. Esta combinación ofrece a los desarrolladores de Rust una arquitectura experimental de alto nivel diseñada para crear interfaces gráficas de usuario (GUI) nativas y de alto rendimiento.
Según la documentación del proyecto, Masonry se posiciona como el kit de herramientas de bajo nivel para la construcción de GUIs. Su función es gestionar el bucle de eventos y la lógica de actualización de la interfaz mediante el mantenimiento de un árbol de componentes (Widget Tree). Por otro lado, Xilem es un framework reactivo inspirado en React, SwiftUI y Elm, que permite a los desarrolladores crear árboles de vistas ligeros y actualizar la interfaz automáticamente en respuesta a cambios de estado.
Guía para desarrolladores y construcción del ecosistema
Para aquellos que deseen comenzar rápidamente, los responsables del proyecto recomiendan priorizar el uso de Xilem. La documentación oficial es clara al respecto: "Si tienes dudas entre ambos, lo que probablemente necesitas es Xilem. Xilem es un framework de UI completo, mientras que Masonry es el kit de herramientas de bajo nivel para construir frameworks de UI".
Esta arquitectura no ha sido creada desde cero, sino que integra profundamente componentes clave del ecosistema Rust. Entre ellos se incluyen 'winit' para la gestión de ventanas, 'Vello' y 'wgpu' para el renderizado gráfico 2D, así como 'Parley' y 'Fontique' para el tratamiento tipográfico. Además, la incorporación de 'AccessKit' garantiza que el framework cuente con un soporte sólido para diversas APIs de accesibilidad.
Actualmente, el proyecto es de código abierto y está disponible en GitHub, donde se incluyen varios programas de ejemplo, como el clásico 'to_do_mvc'. Los desarrolladores pueden integrarlo fácilmente en sus proyectos mediante el comando `cargo add xilem`. Para asegurar una compilación correcta, es necesario tener instalados previamente 'clang', 'pkg-config' y diversas bibliotecas de desarrollo, incluyendo los cargadores de Vulkan.
El proyecto tiene requisitos específicos respecto a la versión de Rust; actualmente se ha verificado su estabilidad en Rust 1.92 y versiones superiores. Los mantenedores advierten que los requisitos mínimos podrían aumentar en el futuro y que dichos cambios no se considerarán actualizaciones disruptivas, por lo que podrían incluirse en versiones de parches.
El equipo de Linebender coordina el desarrollo a través del canal #xilem en la plataforma Zulip. El proyecto se distribuye bajo la licencia Apache 2.0 y la comunidad está invitada a contribuir mediante el envío de 'Pull Requests'. Para quienes desarrollen en entornos Linux o macOS, se recomienda activar la función `split-debuginfo` en el archivo de configuración para reducir el tamaño de los binarios y mejorar la eficiencia durante el desarrollo.