libcoap implements a lightweight application-protocol for devices that are constrained their resources such as computing power, RF range, memory, bandwith, or network packet sizes. This protocol, CoAP was standardized in the IETF as RFC 7252.
libcoap is designed to run on embedded devices as well as high-end computer systems with POSIX OS. Thus, you can develop and test your CoAP applications on your laptop and then move it to your target platform easily.
libcoap has successfully participated in several ETSI IoT CoAP plugtests and is in daily use by various IOT projects in industry and academia. Tools to test against can also be found at coap.technology.
The library provides the core functionality for development of resource-efficient CoAP servers and clients, including resource observation and block-wise transfer. Example implementations show how these features can be used in applications.
coap-client is a wget-like tool to generate simple
requests for retrieval and modification of resources on a remote
coap-server is a basic server application that
illustrates various server-side features of libcoap, while
coap-rd implements a simple CoAP Resource Directory.
There are also pre-built binaries of `coap-client` with DTLS support through tinydtls available for different platforms including Raspberry Pi:
The library is designed to support transport layer security utilizing frameworks such as OpenSSL or tinydtls.