{% extends "base.html" %} {% block title %}pyqmh — About{% endblock %} {% block content %}
A modular, message-driven application framework for Python.
A central message bus that routes commands between modules by address — no direct calls between modules.
Self-contained units of behaviour, each owning its state and running in its own execution loop.
Messages are delivered asynchronously through a queue, keeping modules fully decoupled from each other.
Each module can expose its own Flask application, served in an iframe from this central navigation shell.
The main application creates a Protocol instance, registers one or more
Modules, then enters a message loop. Cross-module coordination happens
exclusively through protocol.send_action() — never by direct method calls.
Standard modules extend the base Module class directly and contain all
concrete runtime behaviour in one class — ideal for logging, UI integrations, and
one-off coordination logic.
Factory modules define an abstract base class and expose multiple
interchangeable implementations (e.g. simulated vs. real hardware). The factory pattern
keeps the abstraction boundary clean and avoids condition-heavy code throughout the app.
The following modules were discovered at startup and are available from the navigation bar: