Constrained Application Protocol: Difference between revisions

Content deleted Content added
The new CoAPSharp repo contains only a MIT license
Mkarts (talk | contribs)
Put inactive (for years) projects and tools into own section
Line 195:
* Semantic and format this field depends on the respective option.
 
==ProxyActive protocol implementations==
==Implementations==
{| class="wikitable sortable"
|-
Line 206:
| 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 || https://www.eclipse.org/californium https://github.com/eclipse/californium
|-
| cantcoapCoAP implementation for Go || C++/C[[Go (programming language)|Go]] || RFC 7252|| Client + Server || Core + Draft Subscribe || BSDMIT || https://github.com/staropramdustin/cantcoapgo-coap
|-
| CanopusCoAPSharp || [[GoC#, (programming language)|Go]].NET || RFC 7252|| Client + Server || Core, ||Observe, ApacheBlock, LicenseRD 2.0|| MIT || http://www.coapsharp.com https://github.com/zubairhamedFemtomaxInc/canopuscoapsharp
|-
| Go-CoAPErbium for Contiki || [[Go (programming language)|Go]]C || RFC 7252, RFC 8232, RFC 7641, RFC 7959|| Client + Server || Core, Observe, Blockwise, Multicast, TCP/TLSTransfers || Apache3-clause License 2.0BSD || httpshttp://githubwww.com/plgdcontiki-devos.org/go (er-coaprest-example)
|-
| CoAP implementation for GoFreeCoAP || [[Go (programming language)|Go]]C || RFC 7252|| Client + Server + HTTP/CoAP Proxy || Core, +DTLS, DraftBlockwise SubscribeTransfers || MITBSD || https://github.com/dustin/gokeith-coapcullen/FreeCoAP
|-
| CoAP.NETjava-coap || C#Java || RFC 7252, coap-13RFC 7641, coap-08RFC 7959, coap-03RFC 8323|| Client + Server || Core, Observe, Blockwise Transfers || 3-clauseApache BSDLicense 2.0 || https://github.com/smeshlinkPelionIoT/CoAP.NETjava-coap
|-
| CoAPSharplibcoap || C#, .NET || 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, BlockMulticast, RDBlockwise ||Transfers, MITPatch/Fetch, OSCORE, DTLS || http:BSD//www.coapsharp.comGPL || https://github.com/FemtomaxIncobgm/coapsharplibcoap
|-
| CoAPthonlobaro-coap || PythonC || RFC 7252|| Client + Server + Forward Proxy + Reverse Proxy || Observe, MulticastBlockwise server discovery, CoRE Link Format parsing, Block-wiseTransfers || MIT || httpshttp://githubwww.lobaro.com/Tanganelli/CoAPthonlobaro-coap
|-
| microCoAPy || MicroPython || RFC 7252|| Client + Server || Core || Apache License 2.0 || https://github.com/insighio/microCoAPy
|-
| nanoCoAP || C || RFC 7252|| Client + Server || Core, Blockwise Transfers, DTLS || LGPL || https://api.riot-os.org/group__net__nanocoap.html
|-
| node-coap || Javascript || RFC 7252,
RFC 7641, RFC 7959
| Client + Server || Core, Observe, Block || MIT || 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 || https://github.com/Covertness/coap-rs
https://docs.rs/coap/
|-
|-}
 
==Proxy implementations==
* [http://telecom.dei.unipd.it/pages/read/90/ Squid 3.1.9 with transparent HTTP-CoAP mapping module]
* [https://code.google.com/p/jcoap/ jcoap Proxy]
* [https://github.com/eclipse/californium/tree/master/californium-proxy2 Californium cf-proxy2]
* [https://github.com/Tanganelli/CoAPthon CoAPthon]
* [https://github.com/keith-cullen/FreeCoAP FreeCoAP]
* [https://github.com/obgm/libcoap libcoap]
 
==Projects using CoAP==
{| class="wikitable sortable"
|-
! Name !! Programming Language !! Implemented CoAP version !! Client/Server !! Implemented CoAP features !! License !! Link
|-
| CoAP Shell || Java || RFC 7252|| Client || Observe, Blockwise Transfers, DTLS || Apache License 2.0 || https://github.com/tzolov/coap-shell
Line 224 ⟶ 252:
| Copper || JavaScript (Browser Plugin) || RFC 7252|| Client || Observe, Blockwise Transfers || 3-clause BSD || https://github.com/mkovatsc/Copper https://addons.mozilla.org/firefox/addon/copper-270430/{{Dead link|date=July 2019 |bot=InternetArchiveBot |fix-attempted=yes }}
|-
|}
| eCoAP || C || RFC 7252|| Client + Server || Core || MIT || https://gitlab.com/jobol/ecoap
 
==Inactive protocol implementations==
{| class="wikitable sortable"
|-
! Name !! Programming Language !! Implemented CoAP version !! Client/Server !! Implemented CoAP features !! License !! Link
| Erbium for Contiki || C || RFC 7252|| Client + Server || Observe, Blockwise Transfers || 3-clause BSD || http://www.contiki-os.org/ (er-rest-example)
|-
| FreeCoAPcantcoap || C++/C || RFC 7252|| Client + Server + HTTP/CoAP Proxy ||Core, DTLS, Blockwise Transfers || BSD || https://github.com/keith-cullenstaropram/FreeCoAPcantcoap
|-
| java-coapCanopus || Java [[Go (programming language)|Go]] || RFC 7252, RFC 7641, RFC 7959, RFC 8323|| Client + Server || Core || Apache License 2.0 || https://github.com/PelionIoTzubairhamed/java-coapcanopus
|-
| 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 || https://github.com/plgd-dev/go-coap
|-
| lobaro-coapCoAP.NET || C# || RFC 7252, coap-13, coap-08, coap-03 || Client + Server || Core, Observe, Blockwise Transfers || MIT3-clause BSD || httphttps://www.lobarogithub.com/lobaro-coapsmeshlink/CoAP.NET
|-
| CoAPthon || Python || RFC 7252|| Client + Server + Forward Proxy + Reverse Proxy || Observe, Multicast server discovery, CoRE Link Format parsing, Block-wise || MIT || https://github.com/Tanganelli/CoAPthon
|-
| eCoAP || C || RFC 7252|| Client + Server || Core || MIT || https://gitlab.com/jobol/ecoap
|-
| guile-coap || Guile || RFC 7252, RFC 8323 || Client + Server || || GPL-3.0-or-later || https://codeberg.org/eris/guile-coap
|-
| iCoAP || Objective-C || RFC 7252|| Client || Core, Observe, Blockwise Transfers || MIT || https://github.com/stuffrabbit/iCoAP
|-
| java-coap || Java || RFC 7252, RFC 7641, RFC 7959, RFC 8323|| Client + Server || || Apache License 2.0 || https://github.com/PelionIoT/java-coap
|-
| jCoAP || Java || RFC 7252|| Client + Server || Observe, Blockwise Transfers || Apache License 2.0 || https://code.google.com/p/jcoap/
|-
| 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, DTLS || BSD/GPL || https://github.com/obgm/libcoap
|-
| LibNyoci || C || RFC 7252|| Client + Server || Core, Observe, Block, DTLS || MIT || https://github.com/darconeous/libnyoci
|-
| lobaro-coap || C || RFC 7252|| Client + Server ||Observe, Blockwise Transfers || MIT || http://www.lobaro.com/lobaro-coap
|-
| microcoap || C || RFC 7252|| Client + Server || || MIT || https://github.com/1248/microcoap
|-
| microCoAPy || MicroPython || RFC 7252|| Client + Server || Core || Apache License 2.0 || https://github.com/insighio/microCoAPy
|-
| nanoCoAP || C || RFC 7252|| Client + Server || Core, Blockwise Transfers, DTLS || LGPL || https://api.riot-os.org/group__net__nanocoap.html
|-
| 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
|-
| node-coap || Javascript || RFC 7252,
RFC 7641, RFC 7959
| Client + Server || Core, Observe, Block || MIT || 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
|-
| Ruby coap || Ruby || RFC 7252|| Client + Server (david) || Core, Observe, Block, RD || MIT, GPL || https://github.com/nning/coap<br/>https://github.com/nning/david
Line 271 ⟶ 296:
|-
| txThings || Python (Twisted) || RFC 7252|| Client + Server || Blockwise Transfers, Observe (partial) || MIT || https://github.com/mwasilak/txThings/
|-
| coap-rs || Rust || RFC 7252|| Client + Server || Core, Multicast, Observe option, ''Too Many Requests'' Response Code || MIT || https://github.com/Covertness/coap-rs
https://docs.rs/coap/
|-
| YaCoAP || C || || || || MIT || https://github.com/RIOT-Makers/YaCoAP
|-
|}
 
==Proxy implementations==
* [http://telecom.dei.unipd.it/pages/read/90/ Squid 3.1.9 with transparent HTTP-CoAP mapping module]
* [https://code.google.com/p/jcoap/ jcoap Proxy]
* [https://github.com/eclipse/californium/tree/master/californium-proxy2 Californium cf-proxy2]
* [https://github.com/Tanganelli/CoAPthon CoAPthon]
* [https://github.com/keith-cullen/FreeCoAP FreeCoAP]
 
==CoAP group communication==