ReactOBus 0.2

Creator: railscoder56

Last updated:

Add to Cart

Description:

ReactOBus 0.2

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 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
Coverage report
Static analysis

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.