Об этом проекте

Iced — это кроссплатформенная GUI-библиотека для Rust, ориентированная на простоту и типобезопасность, вдохновлённая Elm и The Elm Architecture. Она предоставляет API «всё включено» для создания нативных настольных и веб-приложений. Ключевые возможности включают простой и удобный API; типобезопасную реактивную модель программирования; кроссплатформенную поддержку Windows, macOS, Linux и Web; адаптивную компоновку; встроенные виджеты, такие как текстовые поля и прокручиваемые области; поддержку пользовательских виджетов; инструменты отладки с метриками производительности и путешествием во времени; а также первоклассную поддержку асинхронных действий с использованием futures. Экосистема модульная и разделена на переиспользуемые части: независимую от рендерера нативную среду выполнения, позволяющую интегрироваться с существующими системами; два встроенных рендерера, использующих wgpu (с поддержкой Vulkan, Metal и DX12) и tiny-skia (программный запасной вариант); и оболочку для работы с окнами. Следуя The Elm Architecture, приложения строятся вокруг четырёх концепций: State (состояние приложения), Messages (взаимодействия пользователя или события), логика View (отображение состояния в виде виджетов, порождающих сообщения) и логика Update (реакция на сообщения и обновление состояния). В README приведён полный пример счётчика, демонстрирующий этот шаблон. Изначально Iced был создан как попытка привнести простоту Elm в библиотеку для 2D-игр, а ядро было реализовано в мае 2019 года. С тех пор проект превратился в GUI-библиотеку, ориентированную на конечных пользователей, сохранив модульность экосистемы. В настоящее время проект является экспериментальным программным обеспечением, для него доступны дорожная карта и трекер задач. Разработка спонсируется командой Cryptowatch в Kraken.com.