A message broker to create software bus over the network
Project description
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:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file ReactOBus-0.2.tar.gz
.
File metadata
- Download URL: ReactOBus-0.2.tar.gz
- Upload date:
- Size: 23.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e5aede9bb154e784fa32257c408c627f3e4965a66563027f49209f43e95730d8 |
|
MD5 | 21d449fe8adba63118acb19e5d237bfb |
|
BLAKE2b-256 | 3bbf997f5d63501452fff39223a8d62a9c55cb2194657073ae7c6654917b6dda |