Com.AugustCellars.CoAP 1.10.0

An implementation of various CoAP standards.  Both client and server sides are included.

Install-Package Com.AugustCellars.CoAP -Version 1.10.0
dotnet add package Com.AugustCellars.CoAP --version 1.10.0
<PackageReference Include="Com.AugustCellars.CoAP" Version="1.10.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Com.AugustCellars.CoAP --version 1.10.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Com.AugustCellars.CoAP, 1.10.0"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install Com.AugustCellars.CoAP as a Cake Addin
#addin nuget:?package=Com.AugustCellars.CoAP&version=1.10.0

// Install Com.AugustCellars.CoAP as a Cake Tool
#tool nuget:?package=Com.AugustCellars.CoAP&version=1.10.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Release Notes

This project is built on the CoAP.NET project of smeshlink which in turn is based on Californium.  As this project did not seem to be maintained any more and I wanted a version in order to test the newer items that are coming out of the IETF CORE working group, I have captured it and started exanding it.
It is intented primarily for research and verification work.

 - Add fallback code if UDP read function is not supported.  These platforms will no longer have full multicast support.
 - Enable the ability to change ETags on an observe relation
 - Fix error where an observe would attempt to re-connect after active cancel
 - Fix some errors in OSCORE processing with a large number of messages
 - Rename OSCOAP option to OSCORE - this should not affect anybody as it should only be used internally
 - Correct secure blockwise code to have the original request options as part of the key and the next block message
 - Add testing and do some correction to the multicast code
 - Add ability remove Options in CoapClient
 - Internal cleanup work.
 - Add congestion control for observe notifications
 - Restore DTLS reliability checking
 - Remove the media types that had been previously marked as obsolete.
 - Restore the incorrect removal of reliability for DTLS on the server side.
 - Internal cleanup work.
 - Use cache key fields for matching blockwise transfers.
 - Some corrections for blockwise transfers over TCP
 - Put in events to deal with OSCORE declared errors - IV exhaustion and unknown groups among others
 - Move the global OSCORE security contexts to be server specific
 - Update to use CBOR package 4.0.0 due to a security bug found.
 - Start using CoAPException rather than Exception for items being thrown by our code
 - Test and fix code dealing with using DTLS with X509 certificates
 - Recognize the "+udp" schema names as being permitted by the client endpoint classes
 - Remove NetStandard 1.3 in favor of 2.0 and add NetCore 2.0
 - Put in multcast support
 - Primative version of CoRAL
 - Update net 4.5 file to use latest CBOR
 - Switch to use NetStandard 1.3 rather than Net 4.5
 - Remove Net 4.0 distribution
 - Update to match the OSCORE -14 specification
 - Add more work to get callbacks from TLS processing to be known to the user
 - Change to 4.6.2 NET FrameWork
 - Allow for a server to specify an IP Address to monitor rather than monitoring all addresses associated with the machine.
 - Setup to allow TCP transports to be used.  The protocol itself is in a separate module.  No support exists for WebSockets nor is it planned.
 - Setup for TCP signal messages to be sent.
 - Correct seriziation to allow for resolving againist a URL
 - Move to latest version of OSCORE
 - Fix blockwise to use the current session to work w/ TCP and BERT
 - Start implementing the TLSEvent code.  This code allows for some events in the TLS protocol to be sent to the client or server.  Currently server can get unrecognized PSK notifications and process along with some setup events.
 - Update to a more current version of the COSE draft.  Probably not at -12 yet as I have not been following this recently.
 - Move the link format code for CBOR and JSON to the most recent version.  May change without warning in the future.
 - Implement the code needed for doing Raw Public Keys.  Unfortunately the public distribution of BouncyCastle does not have this implemented yet.  Currently there are no plans to distribute our own BC drop.
 - Put the strong name back
 - Rewrite the LinkFormat code - introduce a strict parsing mode and setup for doing a resource directory.
 - Missed the public on FileLogManager class
 - Add method and dispatch code for dealing with FETCH, PATCH and iPATCH.  These methods were defined in RFC 8132.
 - Re-enable DTLS reliability layer.  It was removed for debugging purposes.
 - Re-enable observer reconnect attempts.  The ability to disable it remains, this just changes the default value.
 - Add a UriPath and UriQuery property to the CoapClient class.  This means that URIs do not need to be constantly reparsed when looking at multiple resources on a server.
 - DTLS should now check sessions correct
 - Remove some left over Console.Write statements
 - Refer to strongly named assemblies.  These will become strongly named in the next version
 - Updates dealing with the internal logging system so it can be made to log to a file rather than the console
 - DTLS server implemention is now functional and included.
 - Turn off logging by default
 - Turn off auto re-enrollment for Observe relationships by default.  The ObserveReconnect property on a request can be used to turn it back on for that request.
 - Implement a basic version of DTLS client code          
 - Correct dll name          
 - Fix internal inconsistances

NuGet packages (2)

Showing the top 2 NuGet packages that depend on Com.AugustCellars.CoAP:

Package Downloads
This is an open source helper library which you can use to communicate with your ZigBee-based Ikea TradFri gateway
Implement the TCP and TLS interface defined by RFC 8323. Current support exists for pre-shared keys and X.509 certificates. The BouncyCastle libraries are used for cryptographic support.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated
1.10.0 3,220 9/2/2020
1.9.0 641 6/12/2020
1.8.0 316 3/28/2020
1.7.0 449 2/7/2020
1.6.0 1,242 11/15/2019
1.5.0 702 10/1/2019
1.4.0 387 9/25/2019
1.3.0 307 9/11/2019
1.2.0 4,281 9/17/2018
1.1.9 850 6/17/2018 1,366 9/11/2017
1.1.8 548 9/8/2017
1.1.7 599 8/1/2017
1.1.6 656 7/7/2017
1.1.5 595 6/24/2017
1.1.4 602 6/2/2017
1.1.3 636 5/26/2017
1.1.2 626 5/23/2017
1.1.1 628 4/20/2017