Metadata-Version: 1.2
Name: llama-mqtt
Version: 0.5.0
Summary: An opinionated library for writing MQTT services
Home-page: https://github.com/cameliot/llama
Author: Matthias Hannig
Author-email: matthias@hannig.cc
License: BSD
Description-Content-Type: UNKNOWN
Description: llama
        =====
        
        An opinionated library for writing services on a MQTT message bus.
        
        Why?
        ----
        
        Something along the lines of: After implementing
        `DaliQTT <https://github.com/cccb/daliqtt>`__ I wanted something more
        generalized to create new services more easily.
        
        Also see `Alpaca <https://github.com/cameliot/alpaca>`__, the Go
        implementation of this library.
        
        Installation
        ------------
        
        The package is available via pypi as ``llama-mqtt``, so for installation
        just type:
        
        ::
        
            pip3 install llama-mqtt
        
        How to use
        ----------
        
        Creating a new service in your network is now as easy as:
        
        .. code:: python
        
        
            # Connect to MQTT broker and start dispatch loop
            dispatch, receive = mqtt.connect("localhost:1883", {
                "strings": "v1/simple/strings",
            })
        
            handle(dispatch, receive())
        
        With a handler like
        
        .. code:: python
        
            def handle(dispatch, actions):
                """Process incoming actions"""
        
                for action in actions:
                    if action["type"] == REVERSE_REQUEST:
                        dispatch(_handle_reverse(action["payload"]))
        
        The ``receive`` function can be used in a blocking and non-blocking
        fashion by passing a ``timeout`` in seconds (e.g.
        ``receive(timeout=0.25)`` and it can be used in a one shot kind of way,
        by passing ``once=True``.
        
        This way ``receive(once=True)`` will block until an action is received,
        or (if specified) the ``timeout`` will occure.
        
        Error handling
        ~~~~~~~~~~~~~~
        
        In case decoding the MQTT payload failed, an
        ``llama.actions.MESSAGE_DECODE_ERROR_RESULT`` is received.
        
        Example
        ~~~~~~~
        
        For a simple working example please checkout the
        `examples/reverser/reverser.py <https://github.com/cameliot/llama/blob/master/examples/reverser/reverser.py>`__
        string reversal service.
        
Keywords: mqtt,actor,react,service
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3
