####### Omnibus ####### .. image:: https://travis-ci.org/molview/omnibus.svg?branch=dev :alt: Build status :target: https://travis-ci.org/molview/omnibus/

.. image:: https://coveralls.io/repos/molview/omnibus/badge.svg?branch=dev&service=github :alt: Coverage :target: https://coveralls.io/github/molview/omnibus?branch=dev

Omnibus is a single threaded message bus designed for MolView <http://molview.org>_. Omnibus is distributed under the MIT license.

Architecture

The flowchart below shows the architecture of the Omnibus. The Omnibus has separate channels for each possible event. Anyone can receive events by subscribing to the event channel in the Omnibus. Listeners can reply to an event. All replies will be returned to the origin of the event.

.. code-block::

         +---> Replies   Event A +---+
         |                           |
         |                           |
         |                           |
     +---+---+    +---------+    +---v--+

+-----> Reply +----> Omnibus <----+ Emit | | +-------+ +----+----+ +------+ | | | +------+------+ | | | | +----v----+ +----v----+ | | Event A | | Event B | | +----+----+ +----+----+ | | | | +------+------+ +-------+ | | | | | +------v-----+ +-----v------+ +-----+------+ | | Listener 1 | | Listener 2 | | Listener 3 | | +------+-----+ +-----+------+ +------------+ | | | +---------+-------------+

Libraries

omnibus