Metadata-Version: 1.1
Name: ReactOBus
Version: 0.2
Summary: A message broker to create software bus over the network
Home-page: https://github.com/ivoire/ReactOBus
Author: Rémi Duraffort
Author-email: ivoire@videolan.org
License: AGPLv3+
Description: |Build Status| |Coverage Status| |Code Health|
        
        ReactOBus
        =========
        
        ReactOBus is a message broker that helps to create software bus over the
        network and to react to some messages.
        
        Features
        ========
        
        ReactOBus is able to:
        
        -  collect events (as network messages) from different sources
        -  publish the stream of events
        -  store the events in a database
        -  launch specific commands when an event match some conditions
        
        In a near future, ReactOBus will be able to:
        
        -  filter-out some events
        -  modify on-the-fly event format
        -  ...
        
        Using ReactOBus
        ===============
        
        Requirements
        ------------
        
        ReactOBus is known to work with Python3.4 and Python3.5 under Linux.
        
        It depends on (see **requirements.txt**):
        
        -  pyzmq
        -  pyYAML
        -  SQLAlchemy (if you wish to store events in a database)
        -  setproctitle
        
        Installing
        ----------
        
        ReactOBus is available on
        `pypi <https://pypi.python.org/pypi/ReactOBus>`__ and can be installed
        with:
        
        ::
        
            pip install ReactOBus
        
        By default, **pip** will not install SQLAlchemy. If need, install it
        manually afterward or ask pip to include the right ReactOBus variant
        with:
        
        ::
        
            pip install ReactOBus[db]
        
        It's also possible to execute ReactOBus directly from the sources:
        
        ::
        
            git clone https://github.com/ivoire/ReactOBus.git
            cd ReactOBus
            virtualenv -p python3.5 venv
            source venv/bin/activate
            pip install -r requirements.txt
            python reactobus --level DEBUG --conf share/examples/reactobus.yaml
        
        Configuration
        -------------
        
        The configuration file is a YAML dictionary with:
        
        -  *inputs*: a list of input streams
        -  *outputs*: a list of output streams
        -  *core*: configuration of the internal sockets
        -  *reactor*: the reacting part of ReactOBus
        -  *db*: the database configuration
        
        All keys except *core* and *inputs* are optional. If the optional keys
        are not found in the configuration, the corresponding modules won't be
        loaded.
        
        Message format
        --------------
        
        For the moment, ReactOBus only accepts one type of messages. The
        messages should be multipart ZMQ messages with the following meaning:
        
        -  **topic**
        -  **uuid** (as generated by uuid.uuid1() in Python)
        -  **datetime** when the message was generated (isoformat)
        -  **username** of the sending process or user
        -  **data** as JSON
        
        Testing ReactOBus
        =================
        
        In order to run ReactOBus automatic tests, you will have to install
        *py.test*:
        
        ::
        
            pip install pytest
        
        Then run the tests using:
        
        ::
        
            py.test tests -v
            [...]
            tests/test_core.py::test_core PASSED
            tests/test_db.py::test_run PASSED
            tests/test_db.py::test_errors PASSED
            [...]
        
        On each push, the tests and the coverage are computed on:
        
        -  `Test results <https://travis-ci.org/ivoire/ReactOBus>`__
        -  `Coverage report <https://coveralls.io/github/ivoire/ReactOBus>`__
        -  `Static analysis <https://landscape.io/github/ivoire/ReactOBus>`__
        
        .. |Build Status| image:: https://travis-ci.org/ivoire/ReactOBus.svg?branch=master
           :target: https://travis-ci.org/ivoire/ReactOBus
        .. |Coverage Status| image:: https://coveralls.io/repos/github/ivoire/ReactOBus/badge.svg?branch=master
           :target: https://coveralls.io/github/ivoire/ReactOBus?branch=master
        .. |Code Health| image:: https://landscape.io/github/ivoire/ReactOBus/master/landscape.svg?style=flat
           :target: https://landscape.io/github/ivoire/ReactOBus/master
        
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Communications
Classifier: Topic :: Software Development :: Testing
Classifier: Topic :: System :: Distributed Computing
Classifier: Topic :: System :: Networking
