Об этом проекте
Floem — нативная UI-библиотека на Rust, ориентированная на мелкозернистую реактивность и удобочитаемый декларативный код. README описывает её как высокопроизводительную библиотеку, вдохновлённую Xilem, Leptos и rui. View-дерево создаётся один раз, что помогает избежать узких мест в функциях генерации представления. Также предоставляются такие инструменты, как виртуальный список для написания эффективного UI-кода.
Библиотека кроссплатформенная: Windows, macOS и Linux. Рендеринг выполняется через wgpu с использованием vger или vello, либо GPU-ускоренного Skia-рендерера от AnyRender. При отсутствии GPU применяется CPU-рендерер на базе tiny-skia. Для раскладки используется Taffy с поддержкой Flexbox и Grid на любом узле просмотра.
Floem включает реактивные примитивы — сигналы (signals), вдохновлённые leptos_reactive, что позволяет минимизировать обновления состояния UI. Виджеты поддаются кастомизации внешнего вида и поведения через API стилей, поддерживающий классы и тему. Можно устанавливать сторонние темы. Поддерживаются переходы и анимации по ключевым кадрам с easing через пружинные функции.
Среди других возможностей — инспектор элементов для отладки раскладки, глобальные светлая и тёмная темы, встроенная система дизайна для объявления пользовательских тем, локализация через Fluent-крит с fallback-механизмом, переключением языка во время выполнения и перекрытием по отдельным частям. В примере быстрого старта показано приложение-счётчик с использованием RwSignal, Button и Label. Есть документация и примеры кода, включая галерею виджетов. Проект отмечает, что всё ещё развивается и возможны случайные breaking-изменения до выхода v1. Принимаются вклады, а также предоставлена готовая среда облачной разработки Lapdev.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.