I’m working on a reading list for myself on Immediate Mode GUIs (mostly) in Rust. Below are some loosely organized links & resources I’ve found thus far! Feel free to share more links and I’ll take a look!
Design
- About the IMGUI Paradigm - Dear ImGui Wiki - Explains how UI state lives in your code rather than hidden in the library
- Immediate-Mode Graphical User Interfaces (2005) - Casey Muratori - The original blog post that coined “IMGUI”
- Why is UI in Rust So Hard? - Warp Dev - Challenges of Rust’s memory safety rules with traditional GUI patterns
Managing State
- Keyboard Focus & Event Routing - Niklas Gray - Implementing focus and input handling without persistent widget objects
- State Handling Advantages - No duplicate state between UI and application, eliminating complex observer patterns
Reflections
- Dear ImGui Wiki & FAQs - Omar Cornut - Common questions and design trade-offs in IMGUI libraries
- Ownership and data flow in GPUI - via Nathan Sobo
- Xilem: an architecture for UI in Rust - via Raph Levien
Performance Techniques for Fast Frames
- Batched Rendering - Grouping geometry by texture/material to minimize draw calls
- Caching and Partial Updates - Raph Levien - Recording display lists and reusing vertex buffers across frames
Metal & Graphics
- 2D Graphics on Modern GPU- via Raph Levien
- 3 Years of Metal Retrospective - Arseny Kapoulkine - Experience porting a renderer to Metal on iOS/macOS (please write somewhere other than medium!)
- Fast 2D Graphics on the GPU - via Raph Levien
- Leveraging Rust and the GPU to render user interfaces at 120 FPS - via Antonio Scandurra
- Optimizing the Metal pipeline to maintain 120 FPS in GPUI - via Nathan Sobo & Antonio Scandurra
- Using Metal and Rust to make FFT even faster - LambdaClass - Using Rust with Apple’s Metal API via metal-rs bindings
Native macOS APIs
- objc2: Calling macOS APIs from Rust with objc2 - (lib) Active Rust bindings for Objective-C runtime
- Rust API Bindings: Core Foundation Memory Management and Mutability - via Always Processing - Wrapping Core Foundation and Cocoa APIs in safe Rust
Last updated