egui_mobius_widgets

Crates.ioegui_mobius_widgets
lib.rsegui_mobius_widgets
version
sourcesrc
created_at2025-03-21 15:34:26.510782+00
updated_at2025-04-25 20:08:17.614556+00
descriptionA widget library for egui_mobius
homepagehttps://github.com/saturn77/egui_mobius
repositoryhttps://github.com/saturn77/egui_mobius
max_upload_size
id1600625
Cargo.toml error:TOML parse error at line 24, column 1 | 24 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include`
size0
saturn77 (saturn77)

documentation

README

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.
Commit count: 0

cargo fmt