Californium (Cf) is an open source implementation of the Constrained Application Protocol (CoAP). It is written in Java and targets unconstrained environments such as back-end service infrastructures (e.g., proxies, resource directories, or cloud services) and less constrained environments such as embedded devices running Linux (e.g., smart home/factory controllers or cellular gateways). Californium (Cf) has been running code for the IETF standardization of CoAP and was recently reimplemented from scratch having all the experience. In particular, Cf focuses now on service scalability for large-scale Internet of Things applications. The new implementation was successfully tested at the ETSI CoAP and OMA LWM2M Plugtests in November 2013 and March 2014. It complies with all mandatory and optional test cases.
The Californium (Cf) CoAP framework provides the following features:
- Implementation of CoAP (RFC 7252)
- Implementation of Observe/Notify (RFC 7641)
- Implementation of Blockwise Transfers (RFC 7959)
- Implementation of the Resource Directory draft (draft-ietf-core-resource-directory-20)
- Implementation of DTLS 1.2 (RFC 6347)
- Experimental implementation of DTLS 1.2 Connection ID (draft-ietf-tls-dtls-connection-id-07). The draft is not released, the new record type and hello extension have early assigned code-points. According the IETF, these code-point values are final.
- Implementation of DTLS Record Size Limit Extension (RFC 8449)
- Experimental (currently not complete) implementation of CoAP over TCP (RFC 8323)
- Experimental implementation of OSCORE (Object Security for Constrained RESTful Environments), see draft-ietf-core-object-security-16.
Contributed by joint project of Ericsson and RISE, Research Institutes of Sweden. - CoAP-HTTP cross-proxy support through HttpCore-NIO and Guava
- Scalable Web resource framework with a flexible concurrency model for the implementation of Internet of Things applications
- User-friendly runtime container for JavaScript Internet of Things mashups
- OSGi wrapper for managed servers