Back to top

Eclipse Californiumâ„¢

CoAP in Java

CoAP in Java

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.

Standards compliant

Standards compliant

Californium has been running code for the IETF and is passing all ETSI Plugtest test specifications.

Perfect for IoT cloud services

Perfect for IoT cloud services

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.

Californium (Cf) Core

Californium (Cf) Core

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.

RFC 7252, RFC 7641, RFC 7959.

Californium (Cf) Core

Element-Connector

Element-Connector

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.

Element-Connector

Getting Started

Learn how to use Californium
Getting Started

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.

Getting Started

Scandium (Sc)

Scandium (Sc)

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.

RFC 6347, RFC 7250, RFC 9146.

Scandium (Sc)

Installation Options

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.

DTLS graceful restart,
cloudinit, install scripts.

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.

More Components

Beyond the basics

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.

cf-client, cf-browser.

Experimental CoAP over TCP implementation using netty.io. Currently/still not completed.

netty.io, RFC 8323.

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.)

Californium’s Wiki

Start of your journey to get common with CoAP and DTLS 1.2. Collection of links and information, not only limited to Californium’s scope.

Links to research information about CoAP or DTLS 1.2. Covers related IETF working groups, performance and security topics.

Who is using Californium?

Get in Touch

Wanna tell us what you think about Californium? What we can improve? Which feature is missing? Or just discuss architectural issues?

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.