In this video, I kick off development of eSVG—a Rust-based SVG optimization tool—using Egui, the popular immediate mode GUI library for Rust.
Egui takes a radically different approach compared to frameworks like Iced, following the immediate mode paradigm rather than the traditional retained mode. I’ll walk you through what that means, how it impacts performance and architecture, and why it can be a great fit for certain applications.
We’ll start with the basics—creating a Rust eframe/egui project, exploring the generated template, and cleaning it up for our needs. Then we’ll build the initial foundation of our eSVG app: defining state, implementing a sidebar panel, creating a resizable layout, and rendering an SVG directly on the main canvas.
Perfect for Rust developers curious about immediate mode GUIs, or anyone interested in seeing a real-world Egui application take shape from the ground up.
Repository: Coming Soon!
🔥 Topics Covered:
✅ Egui vs Iced — Retained vs Immediate Mode GUIs
✅ Egui’s documentation, demos, and resources
✅ Setting up an eframe/egui Rust project
✅ Project cleanup and structure
✅ State management in Egui
✅ Building a sidebar and resizable panels
✅ Rendering SVGs on the main canvas
✅ Early impressions of Egui for desktop apps
📚 Contents:
0:00 - Introduction
0:30 - Differences Between Egui and Iced
1:06 - What is Immediate Mode GUI
6:45 - Egui's Website, Demos & Documentation
8:22 - The App We'll be Building Today
13:30 - Creating the Rust Eframe/Egui Project
20:00 - Resource Usage of the Hello World App
21:15 - Inspecting the Getting Started Template
33:07 - Clean Up and Remove the WASM-Related Code
42:08 - State Properties
44:00 - Sidebar Panel
1:02:24 - Resizable Panel Layout
1:09:54 - Rendering an SVG in the Main Canvas
1:34:23 - Summarizing What I've Achieved
1:35:29 - Opinions on Egui
1:39:00 - Conclusion
✉️ Social Media:
📧 Email: [email protected]
🐦 Twitter: / nikelaz
🔗 LinkedIn: / nikola-lazarov