A library to simplify agents that react on/with external events or MQTT messages by handling 95% of the MQTT use-cases.
This project has two general goals:
Installation is not yet provided.
Development happens with CMake and GCC. CLANG might work as well, except for some temporary #pragmas to handle temporary situations otherwise leading to compiler warnings.
apt-get install libmosquitto-dev
apt-get install libconfig-dev
If you want to build and run unit tests:
apt-get install libcmocka-dev
Not yet used:
apt-get install libpthread-stubs0-dev
apt-get install libpopt-dev
The mqtt-clock.c shows a simple example of a (not yet daemonizied) agent that provides the current time over different MQTT topics. There is no reaction to incoming messages yet.
mqtt-tools uses cmocka for unit testing. To build with unit tests, set the CMake variable MQTT_WITH_TESTS
to 'ON'. To run the tests, just call ctest
in your build directory or directly call the test executables built.
This is a very basic first go. Some parts of the API are working, but it is clearly visible that work needs to be done; in the API and the implementation. Contributions are welcome.
This project is mostly, but not necessary solely, maintained by Stefan Haun (tux@netz39.de).
Contributions by:
Contributions are welcome. Please consider the roadmap for your contributions. The maintainers are happy to answer questions.
To contribute, fork the repository and create a feature branch. Please do not add commits on the master branch, as these will not be accepted. Create a PR to have your contribution reviewed and eventually accepted into the code base. Write access to this repository is only granted to maintainers. Any contribution should come from a fork via pull request.
Bugs or wished may be reported with an issue. You can also open an issue to state the intention of a certain contribution. Please mark this as an extension and comment in the issue that you are going to work on this.
This project is licensed under the MIT License. Instead of quoting the full license text in each source file, this project uses SPDX license tags.
The Mosquitto library is dual licensed under the Eclipse Public License 1.0 and the Eclipse Distribution License 1.0 as described in the epl-v10 and edl-v10 files.
See LICENSE.txt for further reading.