Skip to content
No description or website provided.
Find file
Latest commit 6bb3b59 @sophokles73 sophokles73 Use SessionListener to trigger sending of pending APPLICATION messages.
Sending an APPLICATION message to a peer for which no DTLS session
exists yet triggers a new handshake with the peer. Previously it was the
responsibility of the Handshaker class to send the APPLICATION layer
message to the peer once the handshake has been completed.

Handshakers signal the establishment of a session by means of the
SessionLifecycle's sessionEstablished() callback method. In order to
improve separation of concerns pending APPLICATION layer messages are
now sent by the DTLSConnector on this callback.

Californium (Cf) CoAP framework

Implements RFC7252

Californium is a Java CoAP implementation for IoT Cloud services. Thus, the focus is on scalability and usability instead of resource-efficiency like for embedded devices. Yet Californium is also suitable for embedded JVMs.

More information can be found at and


A bug, an idea, an issue? Join the Mailing list


Use mvn clean install in the Cf root directory to build everything. Executable JARs of the examples with all dependencies are copied to ./run/.

Californium in Maven Project

To use Californium as library in your projects, add the following dependencies and Maven repository to your pom.xml (without the dots):

      <name>Californium Repository</name>


The project also includes the project files for Eclipse. Make sure to have the following before importing the Californium (Cf) projects:

Then choose [Import... » Git » Projects from Git » Local] to import californium into Eclipse.

Without Any Maven Support

In case you are using plain Eclipse projects without Maven, you also need to clone and import the element-connector. Add this project to Properties » Java Build Path » Projects.

Interop Server

A test server is running at coap:// The root resource responds with its current version.

Another interop server with a different implementation can be found at coap:// More information can be found at

Something went wrong with that request. Please try again.