More Software Engineering Radio episodes

Hector Ramon Jimenez on Building a GUI library in Rust thumbnail

Hector Ramon Jimenez on Building a GUI library in Rust

Published 25 Mar 2026

Duration: 59:09

ICE is a Rust-based UI toolkit inspired by Elm's architecture, using message-passing to separate state, updates, and views, evolved from a game library module into a functional-focused standalone tool with Winit/WGPU rendering, cross-platform goals, and challenges in dependency stability, while emphasizing state-driven design, community development, and future improvements in rendering efficiency, accessibility, and multi-platform support.

Episode Description

Hector Ramon Jimenez, creator of iced, an Elm-inspired, cross-platform GUI toolkit for Rust, speaks with SE Radio host Gavin Henry about building a GU...

Overview

ICE is a Rust-based GUI toolkit inspired by Elm's architecture, developed as a standalone library from Hector's original UI module. It emphasizes functional programming principles through a message-passing system, separating state, update logic, and view logic. ICE initially relied on Winit for windowing and later integrated Stretch for layout before removing it due to bugs. The toolkit aims for cross-platform support but faces challenges in stabilizing multi-platform functionality. It includes a renderer converting widget descriptions into pixel data, essential for displaying UI components like buttons and text. Key features include a state-driven UI, where messages trigger updates and transitions, influenced by Elm's model-view-update (MVU) pattern. ICE leverages Rust's safety and performance, using Winit for windowing and WGPU or TinySkiia for rendering. The ecosystem has grown with over 30,000 GitHub stars, though community contributions are encouraged for projects like Winit. Testing and development focus on reactive rendering, headless testing, and time-travel debugging tools like Comet. ICE is used in applications like Pop OS (Cosmic desktop) and the Halloween IRC client, with future plans including accessibility improvements and incremental rendering for performance optimization. Challenges include addressing mobile-specific needs and improving internationalization support, leaving localization to third-party crates like Fluent. The toolkit's development prioritizes iterative improvements over fixed versioning, with ongoing efforts to refine rendering, expand capabilities, and stabilize platform support.

Recent Episodes of Software Engineering Radio

13 May 2026 SE Radio 720: Martin Dilger on Understanding Eventsourcing

Recommended: Useful Architectural Pattern.

Event sourcing is a system design approach that records changes as sequential events to ensure historical traceability, uses event modeling for aligning systems with human workflows, contrasts with CRUD architectures, and emphasizes slice-based design, event streams, and practical applications like legacy modernization and workflow simplification.

6 May 2026 Birol Yildiz on Building an Agentic AI SRE

AI agents in SRE leverage autonomous decision-making, agentic search, and lightweight architectures to replace static runbooks, balancing autonomy with reliability challenges, context management, and human oversight in dynamic environments.

29 Apr 2026 Will Sentance on JS Modernization

JavaScript's evolution from a 1995 scripting language to a performance-optimized modern tool balances innovation with backward compatibility through TC39's incremental updates, browser advancements, community-driven libraries, key features like async/await and symbols, engine optimizations, and a design philosophy prioritizing flexibility and user-driven standardization for large-scale frameworks.

23 Apr 2026 Eric Tschetter on Decoupling Observability

Recommended: Telemetry is important, avoiding vendor lockin is even more important.

Observability in microservices emphasizes decoupled architectures over traditional frameworks to address vendor lock-in, data interoperability, and scalability challenges, while balancing unstructured telemetry management, query language standardization, and cross-team collaboration.

15 Apr 2026 Martin Kleppmann Local-First Software

Local First Software combines local data storage with cloud collaboration to enable offline access, real-time editing, and seamless syncing via AutoMerge and CRDTs, prioritizing user control, privacy, and decentralized workflows with future focus on open standards and AI integration.

More Software Engineering Radio episodes