1# libcoap: A C implementation of the Constrained Application Protocol (RFC 7252) 2 3[![Build Status: main](https://github.com/obgm/libcoap/actions/workflows/main.yml/badge.svg?branch=main)](https://github.com/obgm/libcoap/actions?query=branch:main) 4[![Build Status: develop](https://github.com/obgm/libcoap/actions/workflows/main.yml/badge.svg?branch=develop)](https://github.com/obgm/libcoap/actions?query=branch:develop) 5[![Static Analysis](https://scan.coverity.com/projects/10970/badge.svg?flat=1)](https://scan.coverity.com/projects/obgm-libcoap) 6[![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/libcoap.svg)](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:libcoap) 7 8Copyright (C) 2010—2021 by Olaf Bergmann <bergmann@tzi.org> and others 9 10ABOUT LIBCOAP 11============= 12 13libcoap is a C implementation of a lightweight application-protocol 14for devices that are constrained their resources such as computing 15power, RF range, memory, bandwidth, or network packet sizes. This 16protocol, CoAP, is standardized by the IETF as RFC 7252. For further 17information related to CoAP, see <http://coap.technology>. 18 19You might want to check out 20[libcoap-minimal](https://github.com/obgm/libcoap-minimal) for usage 21examples. 22 23DOCUMENTATION 24============= 25 26Documentation and further information can be found at 27<https://libcoap.net>. 28 29PACKAGE CONTENTS 30================ 31 32This package contains a protocol parser and basic networking 33functions for platforms with support for malloc() and BSD-style 34sockets. In addition, there is support for Contiki, LwIP and 35Espressif/ESP-IDF hosted environments. 36 37The following RFCs are supported 38 39* RFC7252: The Constrained Application Protocol (CoAP) 40 41* RFC7641: Observing Resources in the Constrained Application Protocol (CoAP) 42 43* RFC7959: Block-Wise Transfers in the Constrained Application Protocol (CoAP) 44 45* RFC7967: Constrained Application Protocol (CoAP) Option for No Server Response 46 47* RFC8132: PATCH and FETCH Methods for the Constrained Application Protocol (CoAP) 48 49* RFC8323: CoAP (Constrained Application Protocol) over TCP, TLS, and WebSockets 50 [No WebSockets support] 51 52* RFC8768: Constrained Application Protocol (CoAP) Hop-Limit Option 53 54There is (D)TLS support for the following libraries 55 56* OpenSSL (Minimum version 1.1.0) [PKI, PSK and PKCS11] 57 58* GnuTLS (Minimum version 3.3.0) [PKI, PSK, RPK(3.6.6+) and PKCS11] 59 60* Mbed TLS (Minimum version 2.7.10) [PKI and PSK] [Currently only DTLS] 61 62* TinyDTLS [PSK and RPK] [DTLS Only] 63 64The examples directory contain a CoAP client, CoAP Resource Directory server 65and a CoAP server to demonstrate the use of this library. 66 67BUILDING 68======== 69 70Further information can be found at <https://libcoap.net/install.html> 71and [BUILDING](https://raw.githubusercontent.com/obgm/libcoap/develop/BUILDING). 72 73LICENSE INFORMATION 74=================== 75 76This library is published as open-source software without any warranty 77of any kind. Use is permitted under the terms of the simplified BSD 78license. It includes public domain software. libcoap binaries may also 79include open-source software with their respective licensing terms. 80Please refer to 81[LICENSE](https://raw.githubusercontent.com/obgm/libcoap/develop/LICENSE) 82for further details. 83 84