Need help with mqtt_cpp?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

redboltz
222 Stars 76 Forks Boost Software License 1.0 1.2K Commits 46 Opened issues

Services available

!
?

Need anything else?

Contributors list

MQTT client/server for C++14 based on Boost.Asio

Version 10.0.0 Actions StatusBuild Statuscodecov

Important note https://github.com/redboltz/mqtt_cpp/wiki/News.

MQTT v5 is supported since version 4.0.0.

Overview

mqtt_cpp is a header only library. It requires C++14 and the Boost Libraries 1.67.0 or later.

Add mqttcpp/include to your include path. Then, include `mqttclientcpp.hpp

and/or
mqttserver_cpp.hpp` as follows:

For clients: ```c++

include

include // if you want to use typical logging setup

For servers:
```c++
#include 
#include  // if you want to use typical logging setup

You can compile your code as follows:

g++ -std=c++14 -Ipath_to_mqtt_cpp/include your_program.cpp -pthread additional_options

mqttcpp uses std::variant or boost::variant internally. If you define the preprocessor macro MQTTSTD_VARIANT then std::variant is chosen, otherwise boost::variant is chosen.

If you use boost::variant, you need to include mqtt/config.hpp prior to the boost headers inclusion becausse it defines boost configuration macros. When you use mqttclientcpp.hpp and/or mqttservercpp.hpp, they include mqtt/config.hpp internally.

Experimental feature

In

include/mqtt/broker
, there are header files to implement mqtt broker. It is an experimental feature. It would frequently updated. Even if the broker interface would be changed, major version won't be updated.

additional_options

|what you want|required option| |---|---| |TLS support|

-DMQTT_USE_TLS -pthread -lssl -lcrypto
| |Logging support|
-DMQTT_USE_LOG -DBOOST_LOG_DYN_LINK -lboost_log -lboost_filesystem -lboost_thread
| |WebSocket support|
-DMQTT_USE_WS
|

You can see more detail at https://github.com/redboltz/mqtt_cpp/wiki/Config

Example

Usage in cmake project

Add following lines to your

CMakeLists.txt
set(LIBNAME "your_project_name")
add_library(${LIBNAME} )

find_package(mqtt_cpp_iface REQUIRED) target_link_libraries(${LIBNAME} LINK_PUBLIC mqtt_cpp_iface::mqtt_cpp_iface)

This uses the

mqtt_cpp_iface::mqtt_cpp_iface
target and includes all necessary link dependencies.

Test

You can build tests and examples as follows:

At mqtt_cpp directory

mkdir build
cd build
cmake ..
make
make test

In order to build tests, you need to prepare the Boost Libraries 1.59.0.

Documents

https://github.com/redboltz/mqtt_cpp/wiki

You can create html documents using doxygen.

make doxygen

License

mqtt_cpp is licensed under the Boost Software License, Version 1.0. See the

LICENSE_1_0.txt
file for details.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.