Constrained Application Protocol (CoAP) is a machine-to-machine (M2M) web transfer protocol for use with constrained nodes and constrained networks in the Internet of Things (IoT). It is designed to easily interface with HTTP for integration with the Web, while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.

The Qt CoAP module implements the client side of CoAP defined by RFC 7252. Generally, CoAP is designed to use datagram-oriented transport such as UDP, so the current implementation of the transport is based on UDP. However implementing custom transports based on TCP, WebSocket, and so on, is also possible.

The Qt CoAP module supports:

  • Security based on Datagram TLS (DTLS) over UDP
  • Group communication defined by RFC 7390
  • Blockwise transfers defined by RFC 7959
  • Resource observation defined by RFC 7641
  • Resource discovery (multicast and single server)

Using the Module

Using a Qt module requires linking against the module library, either directly or through other dependencies. Several build tools have dedicated support for this, including CMake and qmake.

Building with CMake

Use the find_package() command to locate the needed module components in the Qt6 package:

find_package(Qt6 REQUIRED COMPONENTS Coap)
target_link_libraries(mytarget PRIVATE Qt6::Coap)

See also the Build with CMake overview.

Building with qmake

To configure the module for building with qmake, add the module as a value of the QT variable in the project's .pro file:

QT += coap

Articles and Guides



Licenses and Attributions

Qt CoAP is available under commercial licenses from The Qt Company. In addition, it is available under the GNU General Public License, version 3.

© 2024 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.