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

10 Jun 2026 Jure Leskovec on Relational Graph and Foundational Models

Predictive modeling faces challenges with AI's limitations in structured data, prompting solutions like graph databases and relational deep learning with attention mechanisms to enhance accuracy, scalability, and real-time updates for enterprise applications.

3 Jun 2026 Dave Airlie on Linux Kernel Maintenance

The Linux kernel, the largest global software project, uses a hierarchical maintainer system with 80,150 contributors managing subsystems like DRM through public review, structured development cycles, and evolving practices to address scalability, quality, and integration challenges.

27 May 2026 Dwayne McDaniel on the Engineering Challenges of Secrets Management

Managing secrets like credentials and API keys in software development risks leaks causing supply chain attacks (e.g., PyPy, Clot, Cisco) due to secrets sprawl, plaintext storage, and misuse, prompting solutions like time-bound credentials, decentralized systems, vault tools (e.g., HashiCorp Vault), and strategies such as credential rotation and encrypted storage amid over 28.65 million hard-coded secrets in GitHub in 2025.

20 May 2026 Rob Moffat on Risk-First Software Development

Recommended: Risk identification and management is a forgotten art

Software development prioritizes risk management through frameworks like test-driven development and agile, addressing hidden risks, AI deployment challenges, open-source dependencies, and organizational prioritization to balance innovation with safeguards.

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.

More Software Engineering Radio episodes