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)

Note: Qt CoAP is part of the Qt for Automation offering and not Qt. For further details please see Qt for Automation.

Getting Started

To include the definitions of the module's classes, use the following directive:

#include <QtCoap/QtCoap>

To link against the module, add this line to your qmake .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 the GNU General Public License, version 3.

© 2021 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.