A cross-platform GUI library for Rust focused on simplicity, type-safety, and a reactive Elm-inspired architecture.
Iced is a cross-platform GUI library for Rust that allows developers to build native desktop and web applications using a simple, type-safe API. It solves the challenge of creating user interfaces in Rust by providing an Elm-inspired reactive architecture that manages state, messages, view logic, and update logic in a structured way.
Rust developers looking to build desktop or web applications with a native GUI, especially those who appreciate Elm's architecture and want a batteries-included, type-safe solution.
Developers choose Iced for its simplicity, type-safety, and cross-platform capabilities, offering a reactive programming model that reduces boilerplate and integrates seamlessly with Rust's async ecosystem.
A cross-platform GUI library for Rust, inspired by Elm
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
The reactive programming model with state, messages, view, and update logic reduces boilerplate and enforces type-safety, as demonstrated in the straightforward counter example.
Supports Windows, macOS, Linux, and web targets from a single codebase, enabling broad deployment without platform-specific code.
First-class support for asynchronous actions using futures allows seamless integration with Rust's async ecosystem for handling I/O and background tasks.
Includes built-in performance metrics and time-traveling debugging capabilities, which aid in optimizing and troubleshooting UI issues effectively.
The library is explicitly labeled as experimental, leading to frequent breaking changes, incomplete features, and potential bugs that hinder production use.
Built-in widgets are basic (e.g., text inputs, scrollables), requiring significant custom development for complex or specialized UI components.
Default renderers like wgpu may introduce performance overhead for simple applications, and the modular setup adds complexity compared to more integrated solutions.