Skip to content

saturn77/egui_mobius

Repository files navigation

egui_mobius

Because GUI software design is a two sided problem operating on a single surface.

egui_version egui_taffy MIT License Latest Version Crates.io Rust Rust 2024

egui_mobius is a comprehensive application framework built on egui that transforms its immediate mode foundation into a complete development platform. It combines reactive state management, thread-safe async operations, and a powerful component system to create rich, responsive applications with clean architecture.

Core Features

The egui_mobius ecosystem provides multiple paradigms for building modern GUI applications, each serving different needs while maintaining compatibility with one another:

📊 Reactive State Management

  • Thread-safe reactive primitives via Dynamic<T> and Derived<T>
  • Automatic UI updates when state changes
  • Efficient dependency tracking with minimal boilerplate
  • Composition-friendly design patterns with ReactiveWidgetRef

🧩 Component Library

  • Reusable, composable UI components in egui_mobius_components
  • Advanced event logging with our EventLogger component
  • Customizable widgets with integrated reactive state
  • Consistent design patterns across your application

⚡ Async Runtime

  • 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

🏗️ Modular Architecture

  • 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

Ecosystem

The egui_mobius framework consists of multiple coordinated crates:

  • egui_mobius: Core signal-slot and dispatching system
  • egui_mobius_reactive: Thread-safe reactive state management
  • egui_mobius_widgets: Custom, stateful widget implementations
  • egui_mobius_components: Higher-level UI components

Getting Started

Explore our comprehensive examples to understand different architectural approaches:

  • clock_reactive: Modern reactive UI with minimal boilerplate
  • clock_async: Thread-aware async operations with clean UI feedback
  • reactive_slider: ReactiveWidgetRef for retained-mode style composition
  • logger_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

Contributing

  • 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.

About

A modular framework for egui enabling reuse and scalability.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages