1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-12-19 11:33:51 +01:00
2025-07-08 22:41:45 +02:00

52 lines
2.2 KiB
Markdown

@defgroup net_unicoap unicoap: Unified CoAP Suite
@ingroup net
@brief Send requests and create server resources using the Constrained Application Protocol across different transports
@{
Module. Specify `USEMODULE += unicoap` in your application's Makefile.
@warning `unicoap` is work in progress. Not all functionality is implemented in RIOT yet, however
the documentation already exists. Do not expect everything to work yet.
`unicoap` is RIOT's unified and modular framework for communication via the Constrained Application
Protocol. `unicoap` supports different transports and several CoAP features, enabled by
a **layered** and **modular** design. Support for each CoAP transport, such as UDP, is available through
[drivers](@ref net_unicoap_drivers).
`unicoap` aims to eventually replace @ref net_gcoap, @ref net_nanocoap, and @ref net_nanosock,
in favor of a more beginner-friendly and easily extensible design.
## CoAP
The [Constrained Application Protocol (CoAP)](https://datatracker.ietf.org/doc/html/rfc7252)
is a lightweight alternative to HTTP. HTTP as a general-purpose application protocol carries a
significant overhead and is thus problematic for IoT networks with limited bandwidth and
nodes with little memory. CoAP covers a range of features needed in the IoT, such as resource
discovery, message fragmentation, and end-to-end message protection.
## Quick start
In your application Makefile, add
```Makefile
USEMODULE += unicoap
USEMODULE += unicoap_driver_udp
```
`unicoap` enables support for CoAP over various transport protocols. Currently, `unicoap` supports
a @ref net_unicoap_drivers_udp and @ref net_unicoap_drivers_dtls.
You must specify at least one driver to use networking functionality. If you just want to
[use message APIs](@ref net_unicoap_message_example), you can use the framing implementation of
each driver, such as the @ref net_unicoap_drivers_rfc7252_pdu submodule for the RFC 7252 PDU format.
`unicoap` implements both a client and a server.
To configure `unicoap`, go to the @ref net_unicoap_config.
For extending `unicoap`, refer to @ref net_unicoap_internal.
<!--
FIXME: undefined references, upcoming PR
If you are already using `unicoap` und want to go the extra mile, head to
@ref net_unicoap_optimizing.
-->
@}