Iced (Rust GUI)

Cross-platform GUI library for Rust inspired by Elm architecture. Uses a Model-Update-View pattern where the entire UI is defined as a pure function of application state. Renders with wgpu (GPU-accelerated) and targets desktop (Linux, macOS, Windows) and web (via WASM). Iced is more opinionated than egui with a declarative reactive architecture vs immediate mode.

Evaluated Mar 06, 2026 (0d ago) v0.12+
Homepage ↗ Repo ↗ Developer Tools rust gui elm desktop wasm cross-platform reactive graphics
⚙ Agent Friendliness
63
/ 100
Can an agent use this?
🔒 Security
97
/ 100
Is it safe for agents?
⚡ Reliability
69
/ 100
Does it work consistently?

Score Breakdown

⚙ Agent Friendliness

MCP Quality
--
Documentation
75
Error Messages
72
Auth Simplicity
100
Rate Limits
100

🔒 Security

TLS Enforcement
100
Auth Strength
100
Scope Granularity
100
Dep. Hygiene
82
Secret Handling
100

Client-side Rust GUI library. Memory safety from Rust. No external network calls in UI layer.

⚡ Reliability

Uptime/SLA
85
Version Stability
62
Breaking Changes
58
Error Recovery
72
AF Security Reliability

Best When

You want Elm-inspired architecture in Rust for desktop apps with predictable state management and GPU-accelerated rendering.

Avoid When

You prefer immediate-mode simplicity (use egui) or need embedded/IoT targets (use Slint) or web-first applications (use Leptos/Dioxus).

Use Cases

  • Build cross-platform desktop applications in Rust using Elm's Model-Update-View architecture for predictable state management
  • Create GPU-accelerated desktop UIs in Rust with wgpu rendering for smooth animations and visual effects
  • Develop agent-facing desktop control panels in Rust with reactive architecture where state changes drive UI updates
  • Build WASM-compatible Rust UIs that work identically on desktop and web with the same codebase
  • Create data visualization and dashboard apps in Rust where the Elm-inspired unidirectional data flow simplifies complex state

Not For

  • Embedded/IoT targets with limited resources — egui is lighter and Slint targets embedded better
  • Teams wanting immediate-mode simplicity — Iced's Elm architecture requires upfront investment in message/state design
  • Production web apps requiring HTML/CSS SEO — Iced renders to canvas/WebGL, not DOM HTML

Interface

REST API
No
GraphQL
No
gRPC
No
MCP Server
No
SDK
Yes
Webhooks
No

Authentication

Methods: none
OAuth: No Scopes: No

GUI library. No authentication required.

Pricing

Model: open_source
Free tier: Yes
Requires CC: No

MIT license.

Agent Metadata

Pagination
none
Idempotent
Full
Retry Guidance
Not documented

Known Gotchas

  • Iced's version history has significant breaking changes between 0.x releases — pin versions carefully and review migration guides when upgrading
  • The Elm Message type must be an enum covering all possible UI events — deeply nested components require forwarding messages up through the hierarchy (verbose boilerplate)
  • Async operations use Command::perform — integrating Tokio-based async code requires careful runtime setup to avoid blocking the GUI event loop
  • Custom widgets require implementing the Widget trait which has changed significantly across versions — prefer built-in widgets when possible
  • wgpu backend requires GPU drivers — may fail on headless CI servers without virtual GPU; software rendering fallback exists but is slow
  • Iced WASM bundle size can be 5-15MB before compression — optimize with wasm-opt and ensure your deployment can serve large WASM files

Alternatives

Full Evaluation Report

Detailed scoring breakdown, competitive positioning, security analysis, and improvement recommendations for Iced (Rust GUI).

$99

Scores are editorial opinions as of 2026-03-06.

5215
Packages Evaluated
26151
Need Evaluation
173
Need Re-evaluation
Community Powered