Skip to content
Ken Bannister edited this page Dec 19, 2018 · 33 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
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.

Roadmap

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.

The /.well-known/core resource is designed for a client that makes a block2 request. Otherwise, it returns the first 16 bytes of the resource, and the output likely is a malformed link. Fix this issue.

Milestones

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