Californium is a powerful CoAP framework targeting back-end services communicating with smaller Internet of Things devices. Stronger Internet of Things devices may use Californium as well. It provides a convenient API for RESTful Web services that support all of CoAP’s features.
Californium has been running code for the IETF and is passing all ETSI Plugtest test specifications.
Californium has an extremely scalable architecture and outperforms high-performance HTTP servers. CoAP’s low overhead allows to handle millions of IoT devices with a single service instance. The flexible concurrency model allows to implement whatever is best for your application.
The project is divided into five sub-projects. The Californium (Cf) Core provides the central framework with the protocol implementation to build your Internet of Things applications. The repository also includes example projects to get you started. All Californium sources are hosted on GitHub, so you can easily contribute through pull requests.
Californium (Cf) is dual-licensed under EPL and EDL. The latter is a BSD-like license, which means the Cf CoAP framework can be used together with proprietary code to implement your IoT product!
Cf is available from Maven Central and very easy to consume in your Java project. We have got your back covered from OSGi wrapper to HTTP-CoAP cross-proxy to advanced test suites that have been used at the ETSI Plugtests.
The element-connector abstracts from the different transports CoAP can use.
It provides the basic UDPConnector as well as the interface to implement new connectors like the DtlsConnector of Scandium.
It is also the place for common components and utilities, e.g to read certificate based credentials.
Since version 3.0 this includes also the new configuration.
The Internet of Things if growing, but how can you build your own connected objects? Together with MQTT, CoAP is one of the popular IoT protocols. It provides answers to the typical IoT constraints: it is bandwidth efficient and fits in constrained embedded environment while providing friendly and discoverable RESTful API.
The Scandium (Sc) sub-module provides security for Californium. It implements DTLS 1.2 to secure your application
through ECC with pre-shared keys, certificates, or raw public keys. It comes with many DTLS extensions, amoung them the DTLS 1.2 Connection ID.
Start making your exciting experience with an mature DTLS 1.2 solution, implemented for the Internet of Things.
Californium is easy to install as unix systemd service. Instructions for manual installation are provided. It supports DTLS graceful restart providing a unique experience using encryption for the Internet of Things.
For cloud-VMs, using cloudinit makes the installation even easier. Finally, install scripts are provided, which enables you to start your own server within minutes.
Californium runs on k8s. Extensions to be used with k8s are provided in the . For simple single pod deployments it supports a Blue/Green update with DTLS graceful restart simply on updating the image. For multiple pod deployments it supports additionally DTLS Connection ID Cluster.
Unleash the power, prepare for huge numbers of devices and plenty messages.
k8s module, Blue/Green Update with DTLS graceful restart, DTLS Connection ID Cluster.
This repository provides CoAP tools that also serve as examples. Use our cf-client to interact with your devices from the command line, or the cf-browser to benefit from the UI. Both share a rich set of CLI arguments, enable to prepare to exchange messages in many different ways.
Actinium (Ac) is the app-server for Californium to realize IoT mashups! Your JavaScript apps become available as RESTful resources and can directly talk to IoT devices using our CoapRequest object API.
(Note: the JavaScript support has changed since java 11. Actinium has not been updated for java versions newer than java 8.)
The easiest way to tell us about a problem you experience with Californium is by opening an issue on our GitHub page.
Please make sure to search the existing issues for similar symptoms before you open a new issue.
This is the place where we announce new releases and discuss architectural issues of greater impact.
However, questions and problems should be raised using a GitHug issue.