Sobre el proyecto
Slint es un toolkit GUI declarativo de código abierto para crear interfaces de usuario nativas para sistemas embebidos, escritorio, plataformas móviles y la web mediante WebAssembly. La IU se escribe una sola vez en `.slint`, un lenguaje de marcado declarativo, y se conecta a la lógica de negocio escrita en Rust, C++, JavaScript o Python.
Objetivos de diseño detrás del nombre: Escalable (diseño responsivo, multiplataforma, multiidioma), Ligero (requisitos mínimos de memoria y procesamiento), Intuitivo (APIs consistentes y herramientas amigables para diseñadores) y Nativo (compilado a código máquina con acceso a las APIs del sistema operativo, núcleos de CPU/GPU y periféricos).
Características clave:
- Diseño de IU independiente: el lenguaje declarativo separa la IU de la lógica de negocio para que diseñadores y desarrolladores puedan trabajar en paralelo.
- Herramientas: vista previa en vivo, integraciones con editores, un servidor LSP, una extensión para VS Code, la herramienta slint-viewer con recarga automática, el editor en línea SlintPad y un plugin de Figma a Slint.
- API 1.x estable con evolución cuidadosa.
Arquitectura: los archivos `.slint` se compilan con anticipación mediante análisis léxico, análisis sintáctico, optimización y generación de código, con back-ends para C++, Rust y otros objetivos, además de un intérprete para lenguajes dinámicos. El motor en tiempo de ejecución organiza componentes, elementos, ítems y propiedades en una única región de memoria para reducir las asignaciones. Los backends de renderizado y los estilos son configurables en tiempo de compilación: femtovg (OpenGL ES 2.0), skia y un renderizador por software basado en CPU; un estilo Qt está disponible cuando Qt está instalado.
Los enlaces de lenguaje documentados en el repositorio incluyen C++, Rust, JavaScript/NodeJS (Beta) y Python (Beta), cada uno con documentación y plantillas de inicio. Los ejemplos y demos cubren objetivos embebidos (Raspberry Pi, STM32, RP2040), escritorio (Windows, macOS, Linux) y demos web como una demo de impresora, rompecabezas deslizante, monitor de energía, galería de widgets y demo del clima.
La licencia ofrece una elección entre una licencia libre de regalías para aplicaciones propietarias de escritorio/móvil/web, GNU GPLv3 para aplicaciones de código abierto y una licencia comercial para aplicaciones propietarias embebidas/escritorio/móvil/web. El proyecto es mantenido por SixtyFPS GmbH y acepta código, informes de errores y comentarios.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.