Об этом проекте
Slint — это открытый декларативный GUI-инструментарий для создания нативных пользовательских интерфейсов для встраиваемых систем, настольных компьютеров, мобильных платформ и веба через WebAssembly. Интерфейс пишется один раз на `.slint`, декларативном языке разметки, и связывается с бизнес-логикой, написанной на Rust, C++, JavaScript или Python.
Цели дизайна, стоящие за названием: Scalable (адаптивный дизайн, кроссплатформенность, многоязычность), Lightweight (минимальные требования к памяти и вычислительным ресурсам), Intuitive (согласованные API и удобные для дизайнеров инструменты) и Native (компиляция в машинный код с доступом к API ОС, ядрам CPU/GPU и периферии).
Ключевые характеристики:
- Независимый дизайн интерфейса: декларативный язык отделяет интерфейс от бизнес-логики, чтобы дизайнеры и разработчики могли работать параллельно.
- Инструменты: живой предпросмотр, интеграции с редакторами, сервер LSP, расширение для VS Code, инструмент slint-viewer с авто-перезагрузкой, онлайн-редактор SlintPad и плагин Figma to Slint.
- Стабильный API 1.x с аккуратной эволюцией.
Архитектура: файлы `.slint` компилируются заранее через лексический анализ, парсинг, оптимизацию и генерацию кода, с бэкендами для C++, Rust и других целей, а также интерпретатором для динамических языков. Среда выполнения размещает компоненты, элементы, items и свойства в единой области памяти, чтобы уменьшить количество аллокаций. Бэкенды рендеринга и стили настраиваются во время компиляции: femtovg (OpenGL ES 2.0), skia и программный рендерер на CPU; стиль Qt становится доступен при установленном Qt.
Языковые привязки, документированные в репозитории, включают C++, Rust, JavaScript/NodeJS (Beta) и Python (Beta), каждая с документацией и шаблонами для начала работы. Примеры и демо охватывают встраиваемые цели (Raspberry Pi, STM32, RP2040), настольные платформы (Windows, macOS, Linux) и веб-демо, такие как демо принтера, слайд-головоломка, монитор энергии, галерея виджетов и демо погоды.
Лицензирование предлагает выбор между безроялти-лицензией для проприетарных настольных/мобильных/веб-приложений, GNU GPLv3 для открытых приложений и коммерческой лицензией для проприетарных встраиваемых/настольных/мобильных/веб-приложений. Проект поддерживается SixtyFPS GmbH и приветствует код, сообщения об ошибках и обратную связь.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.