Skip to content

nanocoap Home

Ken Bannister edited this page Feb 24, 2019 · 26 revisions

nanocoap is a native implementation of CoAP for RIOT. Client messages are processed synchronously: a client waits for the the function that sends the request to return with the response. A CoAP server runs in a dedicated application thread.

Feature Status

Feature Description
Confirmable message type Supports piggybacked ACKs
Block extension Provides server implementation for Block1 and Block2; see #10732 for client implementations
Observe extension Not implemented

Learning More

See the online API documentation for nanocoap itself, as well as generic CoAP definitions. Also, see the examples/nanocoap_server app.

Open PRs

Topic Status

See all open 'nanocoap' PRs and Issues. See all CoAP-tagged PRs and Issues.


See #9309 for combined gcoap and nanocoap roadmap for options handling. As of 11/2018, much of this work has been completed.

Presently, nanocoap provides server-side implementation of the Block extension. Add client-side implementation.

Extend nanocoap_request() to allow sending a request non-confirmably.


Release Description
2018.10 Added Block2 server support (#8932)
2018.10 Get/Put specific string options based on generic string option functions (#8920).
2018.07 Generalize nanocoap_get() to nanocoap_request() (#9086).
2018.07 Use coap_pkt_t to create message, and use this to provide a simpler API for options (#9085).
2018.04 Added Block1 server support (#8788).
2018.01 Integrate as RIOT module (#8123). Historically was an external package.
Clone this wiki locally
You can’t perform that action at this time.