Texugo is a flexible multiplatform server message switch using Modern C++ based on Boost Asio.
- End-to-end system that process messages, using Boost.ASIO;
- Flexible port binding;
- Reliably serve devices across multiple networks;
- Logging support with spdlog;
- Unit tests using Catch2;
- Support to build and run the binary on Docker;
- Support to docker-compose to run all the services dependencies;
- TODO: Storing messages and logs on MongoDB;
- TODO: Metrics monitoring with Prometheus;
- TODO: Data visualization with Grafana;
Follow these steps:
$ git clone https://github.com/leozz37/texugo.git
$ mkdir build && cd build
$ cmake ..
$ make -j4
There's three files example, to use them do the follow commands:
injector-json.py
$ python injector-json.py $PORT $DESTINATION $MESSAGE
Would look like this
$ python injector-json.py 3000 AAAAAAA Hello
injector-multiple.py
$ python injector-multiple.py $PORT
injector-single.py
$ python injector-single.py $PORT $MESSAGE
$ cd build/tests
$ ctest -V
Building the image:
$ docker build . -t texugo
Running the image:
$ docker run -v $PWD/..:/dev/texugo texugo
Running docker compose
$ docker-compose up
You can change the default route settings by changing the routingAddresses array on the resources/settings.json file.
"routingAddresses": [
{
"AAAAAAA": "3000"
},
{
"BBBBBBB": "3001"
},
{
"CCCCCCC": "3002"
},
{
"DDDDDDD": "3003"
},
{
"EEEEEEE": "3004"
}
]