Edge Rewrite
Jump to content

Draft:Iced (GUI library)

From Wikipedia, the free encyclopedia
  • Comment: Most of these sources are not independent (Github repo, docs, interviews), trivial coverage (changelogs, one-two line "we're using this"), self-published/blogs (Phoronix), ai generated (byteiota), etc. Some of those types of sources (brief coverage, primary sources) can be used in some situations to support simple facts, but they do not demonstrate notability. LittlePuppers (talk) 18:42, 1 August 2026 (UTC)

Iced
DevelopersHéctor Ramón Jiménez and contributors
ReleaseSeptember 5, 2019; 6 years ago (2019-09-05)
Stable release
0.14.0 / December 7, 2025; 7 months ago (2025-12-07)
Written inRust
Operating systemCross-platform (Windows, macOS, Linux, Web)
TypeWidget toolkit
LicenseMIT License
Websiteiced.rs
Repositorygithub.com/iced-rs/iced

Iced is a cross-platform.[1] GUI for the Rust programming language, focused on simplicity and type safety.[2][3][4]. It was created by Héctor Ramón Jiménez in 2019 and is inspired by Elm and The Elm Architecture (TEA).[2][5]. iced uses it's own full rendering pipeline, leveraging either the GPU using wgpu, or the CPU using tiny-skia.[5]. It's most notable use is the COSMIC desktop.[4]

History

[edit]

Iced started out as a GUI library built into Coffee, a 2D game engine Jiménez was making at the time, but then it was decided to make iced a standalone library. The name iced was chosen simply because Jiménez likes iced coffee..[5]

Since then, the focus has shifted towards a batteries-included library with modularity.[3]

Architecture

[edit]

Iced uses The Elm Architecture, which splits an app into five concepts: model, message, update, view, subscription. The view draws based on the current model, sending messages on user actions. These messages then feed into the update function, modifying the model, and calling the view function once again. Subscriptions allow the app to listen to external events or timers, sending Messages that also feed into the update.[6]

The Elm architecture visualised in a user-friendly way.

Rendering

[edit]

Iced uses wgpu as it's default rendering backend for GPU-accelerated graphics, supporting Vulkan, Metal as primary renderers, and DirectX 12 and OpenGL, OpenGL ES and WebGL as best effort implementations.[7] Alternatively, if no compatible GPU device is found, Iced falls back to tiny-skia, a software rendering graphics API. The rendering backend can be manually selected using feature flags, or the ICED_BACKEND environment variable.[8][9]

Notable uses

[edit]

The most notable use of Iced is System76's COSMIC desktop environment, which adopted the toolkit in 2022 after evaluating it against GTK.[4]

Other notable apps using Iced include Sniffnet.[10][11]

See also

[edit]

References

[edit]
  1. ^ "Kraken desktop downloads: Kraken desktop supports Windows, Linux and macOS". Kraken. Retrieved 2026-08-02.
  2. ^ a b "iced-rs/iced: A cross-platform GUI library for Rust, inspired by Elm". GitHub. Retrieved 2026-04-09.
  3. ^ a b c "System76's COSMIC Desktop Ditched GTK in Favor of Iced". Linuxiac. 2022-10-04. Retrieved 2026-04-10.
  4. ^ a b c "SE Radio 713: Héctor Ramón Jiménez on Building a GUI library in Rust". Software Engineering Radio. 2026-03-25. Retrieved 2026-04-09.
  5. ^ "Introduction - iced — A Cross-Platform GUI Library for Rust". book.iced.rs. Retrieved 2026-04-09.
  6. ^ "wgpu Github repo README". GitHub. Retrieved 2026-08-02.
  7. ^ "Unofficial iced guide". Unofficial iced guide. Retrieved 2026-08-02.
  8. ^ "0.14 iced backend selection source code". Github. Retrieved 2026-08-02.
  9. ^ "Windows Central sniffnet coverage". Windows Central. Retrieved 2026-08-02.
  10. ^ "Sniffnet github repo with iced dep". Github. Retrieved 2026-08-02.
[edit]