egui_mobius is a comprehensive software stack for building sophisticated egui applications. It provides essential layers needed for production-ready GUI applications that include reactive state management, async operations and dedicated threading mechanisms, and an evolving component system. The component system is the primary focus to develop modular and maintainble applications with a clean architecture.
The egui_mobius ecosystem provides multiple paradigms for building modern GUI applications, each serving different needs while maintaining compatibility with one another.
The diagram below is a general representation of how egui_mobius is organized.
- Thread-safe reactive primitives via
Dynamic<T>
andDerived<T>
- Automatic UI updates when state changes
- Efficient dependency tracking with minimal boilerplate
- Composition-friendly design patterns with
ReactiveWidgetRef
- Background processing that keeps your UI responsive
- Type-safe message passing between threads
- Built on Tokio for reliable async operations
- Seamless integration with the reactive system
- Signal-slot system for clean separation of UI and business logic
MobiusWidget
traits for encapsulated, reusable UI elements- Scalable patterns for complex applications
- Stateful components that maintain their own lifecycle
The egui_mobius framework consists of multiple coordinated crates:
egui_mobius
: Core signal-slot and dispatching systemegui_mobius_reactive
: Thread-safe reactive state managementegui_mobius_widgets
: Custom, stateful widget implementationsegui_mobius_components
: Higher-level UI components
egui_lens
A reactive event logger component built uponegui_mobius_reactive
diskforge
An SD card formatting application that is an example withinegui_lens
KiForge
A computer aided manufacturing CAM platform for KiCad incorporatingegui_lens
Explore our comprehensive examples to understand different architectural approaches:
clock_reactive
: Modern reactive UI with minimal boilerplateclock_async
: Thread-aware async operations with clean UI feedbackreactive_slider
: ReactiveWidgetRef for retained-mode style compositionlogger_component
: EventLogger component for sophisticated event tracking
For the fastest start, check out our template repository:
git clone https://github.com/saturn77/egui_mobius_template.git
cd egui_mobius_template
The template provides three comprehensive examples:
- Reactive - Basic reactive UI demo showing fundamental state management
- Reactive-Async - Sophisticated async task handling with background operations
- Signals-Slots - Full-featured RLC Circuit Simulator demonstrating signal-slot architecture
- Contributions are welcome! Please fork the repository, create a feature branch, and submit a pull request.
- This project is licensed under the MIT License.
- For support or questions, open an issue or reach out on GitHub Discussions.