Content deleted Content added
replace wrongly moved active project |
ce |
||
(One intermediate revision by one other user not shown) | |||
Line 41:
|}
=== CoAP
The first 4 bytes are mandatory in all CoAP datagrams, they constitute the fixed-size header.
These fields can be extracted from these 4 bytes in C via these macros:
<syntaxhighlight lang="c"> #define COAP_HEADER_VERSION(data) ( (0xC0 & (data)[0]) >> 6 )
#define COAP_HEADER_TYPE(data) ( (0x30 & (data)[0]) >> 4 )
Line 202 ⟶ 203:
| coap || Dart || RFC 7252|| Client || Blockwise Transfers, Observe, Multicast, Proxying (partial) || MIT || https://github.com/shamblett/coap
|-
| aiocoap || Python 3 || RFC 7252, RFC 7641, RFC 7959, RFC 8323, RFC 7967, RFC 8132, RFC 9176, RFC 8613, RFC 9528|| Client + Server || Blockwise Transfers, Observe (partial) || MIT || {{URL|https://pypi.python.org/pypi/aiocoap}}
|-
| Californium || Java || RFC 7252, RFC 7641, RFC 7959|| Client + Server || Observe, Blockwise Transfers, Multicast (since 2.x), DTLS (+ DTLS 1.2 Connection ID) || EPL+EDL || {{URL|https://www.eclipse.org/californium}} {{URL|https://github.com/eclipse/californium}}
|-
| CoAPSharp || C#, .NET || RFC 7252|| Client + Server || Core, Observe, Block, RD || MIT || {{URL|http://www.coapsharp.com https://github.com/FemtomaxInc/coapsharp}}
|-
| FreeCoAP || C || RFC 7252|| Client + Server + HTTP/CoAP Proxy ||Core, DTLS, Blockwise Transfers || BSD || {{URL|https://github.com/keith-cullen/FreeCoAP}}
|-
| Go-CoAP || [[Go (programming language)|Go]] || RFC 7252, RFC 8232, RFC 7641, RFC 7959|| Client + Server || Core, Observe, Blockwise, Multicast, TCP/TLS || Apache License 2.0 || {{URL|https://github.com/plgd-dev/go-coap}}
|-
| java-coap || Java || RFC 7252, RFC 7641, RFC 7959, RFC 8323|| Client + Server || || Apache License 2.0 || {{URL|https://github.com/PelionIoT/java-coap}}
|-
| libcoap || C || RFC 7252, RFC 7390, RFC 7641, RFC 7959, RFC 7967, RFC 8132, RFC 8323, RFC 8516, RFC 8613, RFC 8768, RFC 8974, RFC 9175, RFC 9177|| Client + Server ||Core, Observe, Multicast, Blockwise Transfers, Patch/Fetch, OSCORE, (D)TLS || BSD/GPL || https://github.com/obgm/libcoap
Line 220 ⟶ 221:
| colspan="3" |same support as libcoap
|MIT
|{{URL|https://github.com/anyc/libcoapy}}
|-
| lobaro-coap || C || RFC 7252|| Client + Server ||Observe, Blockwise Transfers || MIT || {{URL|http://www.lobaro.com/lobaro-coap}}
|-
| microCoAPy ||
|-
| nanoCoAP ||
|-
| node-coap ||
RFC 7641, RFC 7959
| Client + Server || Core, Observe, Block || MIT || {{URL|https://github.com/mcollina/node-coap}}
|-
| Qt CoAP || C++ || RFC 7252|| Client || Core, Observe, Blockwise Transfers || GPL, Commercial || https://doc.qt.io/qt-6/qtcoap-index.html
|-
| coap-rs || Rust || RFC 7252|| Client + Server || Core, Multicast, Observe option, ''Too Many Requests'' Response Code || MIT || {{URL|https://github.com/Covertness/coap-rs}}
{{URL|https://docs.rs/coap/}}
|-
|}
Line 257 ⟶ 258:
| CoAP Shell || Java || RFC 7252|| Client || Observe, Blockwise Transfers, DTLS || Apache License 2.0 || https://github.com/tzolov/coap-shell
|-
| Copper || JavaScript (
|-
|}
Line 286 ⟶ 287:
| jCoAP || Java || RFC 7252|| Client + Server || Observe, Blockwise Transfers || Apache License 2.0 || https://code.google.com/p/jcoap/
|-
| LibNyoci ||
|-
| microcoap ||
|-
| nCoap || Java || RFC 7252|| Client + Server || Observe, Blockwise Transfers, CoRE Link Format, [https://tools.ietf.org/html/draft-kleine-core-coap-endpoint-id-01 Endpoint-ID-Draft] || BSD || https://github.com/okleine/nCoAP
Line 327 ⟶ 328:
* Certificate, where DTLS is enabled and the device uses [[X.509]] certificates for validation.
Research has been conducted on optimizing DTLS by implementing security associates as CoAP resources rather than using DTLS as a security wrapper for CoAP traffic. This research has indicated that improvements of up to 6.5 times none optimized implementations.<ref name="Security as a CoAP resource: An optimized DTLS implementation for the IoT">{{cite book |last1=Capossele |first1=Angelo |last2=Cervo |first2=Valerio |last3=De Cicco |first3=Gianluca |last4=Petrioli |first4=Chiara|title=2015 IEEE International Conference on Communications (ICC) |chapter=Security as a CoAP resource: An optimized DTLS implementation for the IoT |author4-link= Chiara Petrioli |date=June 2015 |
In addition to DTLS, RFC8613<ref>{{Cite journal|last1=Palombini|first1=Francesca|last2=Seitz|first2=Ludwig|last3=Selander|first3=Goeran|last4=Mattsson|first4=John|title=Object Security for Constrained RESTful Environments (OSCORE)|url=https://tools.ietf.org/html/rfc8613.html|access-date=2021-05-07|website=tools.ietf.org|year=2019 |doi=10.17487/RFC8613 |s2cid=58380874 |language=en}}</ref> defines the Object Security for Constrained RESTful Environments ([[OSCORE]]) protocol which provides security for CoAP at the application layer.
|