À propos du projet

Iced est une bibliothèque GUI multiplateforme pour Rust axée sur la simplicité et la sûreté du typage, inspirée d'Elm et de The Elm Architecture. Elle fournit une API complète pour créer des applications natives de bureau et web. Les principales fonctionnalités incluent une API simple et facile à utiliser ; un modèle de programmation réactif à typage sûr ; une prise en charge multiplateforme pour Windows, macOS, Linux et le Web ; une mise en page réactive ; des widgets intégrés tels que des champs de texte et des zones défilables ; la prise en charge de widgets personnalisés ; des outils de débogage avec métriques de performance et time traveling ; et une prise en charge de premier ordre des actions asynchrones à l'aide de futures. L'écosystème est modulaire, divisé en parties réutilisables : un runtime natif indépendant du moteur de rendu permettant l'intégration avec des systèmes existants ; deux moteurs de rendu intégrés exploitant wgpu (prenant en charge Vulkan, Metal et DX12) et tiny-skia (une solution logicielle de repli) ; et un shell de fenêtrage. Suivant The Elm Architecture, les applications sont structurées autour de quatre concepts : State (l'état de l'application), Messages (les interactions utilisateur ou événements), la logique View (afficher l'état sous forme de widgets produisant des messages) et la logique Update (réagir aux messages et mettre à jour l'état). Le README inclut un exemple complet de compteur démontrant ce modèle. Iced a été initialement créé comme une tentative d'apporter la simplicité d'Elm dans une bibliothèque de jeu 2D, avec le cœur implémenté en mai 2019. Il a depuis évolué vers une bibliothèque GUI orientée utilisateur final tout en conservant un écosystème modulaire. Le projet est actuellement un logiciel expérimental, avec une feuille de route et un suivi des problèmes disponibles. Le développement est sponsorisé par l'équipe Cryptowatch de Kraken.com.