Iced 0.14.0 builds interfaces from 4 explicit parts
Iced borrows its application shape from Elm: state holds data, messages describe events, view code turns state into widgets, and update code changes state after a message. Version 0.14.0 can run that model on Windows, macOS, Linux, and the web. The separation makes behavior traceable because button presses and asynchronous results enter the same message path instead of mutating widgets through scattered callbacks.
The included widget set covers text inputs, scrolling, tables, grids, markdown, editors, pick lists, panes, and other common controls. Layout is responsive, custom widgets are supported, and futures can feed asynchronous work back into the application. Iced owns drawing through its renderer stack, so the result has a consistent custom appearance. A team seeking each operating system's stock controls and exact native behavior should compare GTK or another platform toolkit.
What happened when we ran it
Our sandbox installed 295 packages in 31 seconds and built commit cfeef0b in 149 seconds. The repository held 585 files, roughly 96,657 source lines, and occupied 8.6 MB before installation. Nothing in the measured install or build log required a credential or external service. The 149-second compile is the main setup cost we observed, which matters for clean CI workers even though incremental application builds can behave differently.
Tests finished in 55 seconds with 70 passed and 0 failed out of 70. Our scan found 7 CI workflow files and a tests directory, with no Dockerfile. The successful command checks the code paths selected by the repository's test setup. It does not demonstrate window creation on 4 platforms, browser packaging, GPU compatibility, touch behavior, screen-reader behavior, or the visual result of a particular application. Those need product-specific checks.
Two renderers trade GPU reach for a software fallback
The default graphics path uses wgpu, with Vulkan on Linux, Metal on macOS, and DX12 on Windows. Iced also includes a tiny-skia renderer for software drawing. That split gives an application a fallback path and lets lower-level crates integrate the renderer-agnostic runtime. It does not guarantee automatic recovery from every adapter failure: issue #3265 reports an older Linux GPU reaching a Vulkan capability crash before fallback selection.
System setup varies by host. The NixOS dependency guide names libxkbcommon, a Vulkan loader or OpenGL, and Wayland or X11 libraries, then shows shell and flake configurations. Other Linux distributions package the same layers differently. A web build adds a WASM target and browser delivery tooling. The Rust API may be shared, while installers, graphics drivers, font behavior, clipboard integration, and window-system testing remain platform work.
The experimental label still matters after 0.14.0
Release 0.14.0, published December 7, 2025, added reactive rendering, headless and end-to-end testing, time-travel debugging, hot reload, input-method support, animation, and several widgets. It also changed widget events, renderer dependencies, keyboard subscriptions, theme behavior, and the Rust edition. That is productive development, but it explains the README's experimental warning: an application owner should expect migration work before treating the public API as settled.
The release tag is older than the latest source activity. GitHub recorded a push on September 9, 2026, with 31,464 stars and 493 combined open issues and pull requests. A GitHub issue search returned 362 open issues. Those figures show both adoption and a sizable triage surface. The ongoing pushes and recently updated reports indicate active maintenance, so the release date alone is not evidence that Iced has stalled.
Current reports touch GPUs, Wayland, Windows, and touch input
Issue #3441 says the text editor ignores finger and pen events, which is a direct blocker for the reporter's Windows tablet workflow. Issue #2256 reports programmatic window resizing reverting under Wayland. Issue #3382 describes a Windows presentation error that leaves input alive while drawing stops and logs grow. Each report has a specific platform or condition; none establishes a failure across all Iced applications.
These issues should shape acceptance testing. A desktop release needs a matrix covering its actual graphics adapters, display servers, scale factors, sleep and wake cycle, keyboard layouts, input methods, clipboard, and touch devices. Version 0.14.0's headless testing can exercise messages and views without a display, while end-to-end support can cover interactions. Neither replaces a short run on the physical hardware customers use.
Egui favors immediate mode, while Slint supports 4 languages
Egui is the closest Rust-native comparison for many developer tools; its immediate-mode API rebuilds the interface description each frame and suits highly interactive editors. Slint uses a declarative UI language and supports Rust, C++, JavaScript, and Python application code. GTK 4 has a longer desktop lineage and deeper native integration, while its web story and custom-rendered look differ from Iced's.
Iced is appealing when a Rust team wants explicit message flow, custom visuals, asynchronous tasks, and one UI model across desktop and web. Our clean 70-test result removes concern about the measured checkout, but the project's own experimental label should decide the commitment level. Build a representative screen first, then test the oldest GPU, touch device, Wayland compositor, and browser you promise to support before settling on the toolkit.

