Skip to content
/ texugo Public
forked from leozz37/texugo

Simple message switch using modern C++

License

Notifications You must be signed in to change notification settings

guhgg/texugo

 
 

Repository files navigation

Texugo

logo

Codacy Badge CodeFactor Build Status Build status codecov Documentation License: MIT

Texugo is a flexible multiplatform server message switch using Modern C++ based on Boost Asio.

Features

  • 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;

Installation

Follow these steps:

Clone this repository

$ git clone https://github.com/leozz37/texugo.git

Create a build directory and build binary

$ mkdir build && cd build

$ cmake ..

$ make -j4

Using examples

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

Running Tests

$ cd build/tests

$ ctest -V

Docker

Building the image:

$ docker build . -t texugo

Running the image:

$ docker run -v $PWD/..:/dev/texugo texugo

Running docker compose

$ docker-compose up

Server Configs

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"
    }
  ]

About

Simple message switch using modern C++

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 81.2%
  • CMake 13.3%
  • Shell 2.9%
  • Dockerfile 2.6%