All Projects → eclipse → Californium

eclipse / Californium

Licence: other
CoAP/DTLS Java Implementation

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Californium

Leshan
Eclipse Leshan is an OMA Lightweight M2M (LWM2M) implementation in Java.
Stars: ✭ 483 (-7.29%)
Mutual labels:  coap, eclipseiot, iot, internet-of-things
Wakaama
Eclipse Wakaama is a C implementation of the Open Mobile Alliance's LightWeight M2M protocol (LWM2M).
Stars: ✭ 358 (-31.29%)
Mutual labels:  coap, eclipseiot, iot, internet-of-things
Paho.mqtt.c
An Eclipse Paho C client library for MQTT for Windows, Linux and MacOS. API documentation: https://eclipse.github.io/paho.mqtt.c/
Stars: ✭ 1,056 (+102.69%)
Mutual labels:  eclipseiot, iot, internet-of-things
Paho.mqtt.java
Eclipse Paho Java MQTT client library. Paho is an Eclipse IoT project.
Stars: ✭ 1,620 (+210.94%)
Mutual labels:  eclipseiot, iot, internet-of-things
Paho.mqtt.android
MQTT Android
Stars: ✭ 2,334 (+347.98%)
Mutual labels:  eclipseiot, iot, internet-of-things
Paho.mqtt.embedded C
Paho MQTT C client library for embedded systems. Paho is an Eclipse IoT project (https://iot.eclipse.org/)
Stars: ✭ 887 (+70.25%)
Mutual labels:  eclipseiot, iot, internet-of-things
Smarthome
Eclipse SmartHome™ project
Stars: ✭ 867 (+66.41%)
Mutual labels:  eclipseiot, iot, internet-of-things
Vorto
Vorto Project
Stars: ✭ 179 (-65.64%)
Mutual labels:  eclipseiot, iot, internet-of-things
Coapnet
CoAPnet is a high performance .NET library for CoAP based communication. It provides a CoAP client and a CoAP server. It also has DTLS support out of the box.
Stars: ✭ 23 (-95.59%)
Mutual labels:  coap, iot, internet-of-things
Awalwm2m
Awa LWM2M is an implementation of the OMA Lightweight M2M protocol in C.
Stars: ✭ 93 (-82.15%)
Mutual labels:  coap, iot, internet-of-things
Kura
Eclipse Kura™ project - http://eclipse.org/kura
Stars: ✭ 369 (-29.17%)
Mutual labels:  eclipseiot, iot, internet-of-things
Hawkbit
Eclipse hawkBit™
Stars: ✭ 283 (-45.68%)
Mutual labels:  eclipseiot, iot, internet-of-things
Iot Technical Guide
🐝 IoT Technical Guide --- 从零搭建高性能物联网平台及物联网解决方案和Thingsboard源码分析 ✨ ✨ ✨ (IoT Platform, SaaS, MQTT, CoAP, HTTP, Modbus, OPC, WebSocket, 物模型,Protobuf, PostgreSQL, MongoDB, Spring Security, OAuth2, RuleEngine, Kafka, Docker)
Stars: ✭ 2,334 (+347.98%)
Mutual labels:  coap, iot, internet-of-things
Ditto
Eclipse Ditto Project
Stars: ✭ 245 (-52.98%)
Mutual labels:  eclipseiot, iot, internet-of-things
Mainflux
Industrial IoT Messaging and Device Management Platform
Stars: ✭ 1,341 (+157.39%)
Mutual labels:  coap, iot, internet-of-things
Designiot
教你设计物联网系统。构建自己的Internet of Things 。
Stars: ✭ 1,983 (+280.61%)
Mutual labels:  coap, iot, internet-of-things
Awesome Home Assistant
A curated list of amazingly awesome Home Assistant resources.
Stars: ✭ 3,487 (+569.29%)
Mutual labels:  iot, internet-of-things
Blynk Library
Blynk library for embedded hardware. Works with Arduino, ESP8266, Raspberry Pi, Intel Edison/Galileo, LinkIt ONE, Particle Core/Photon, Energia, ARM mbed, etc.
Stars: ✭ 3,305 (+534.36%)
Mutual labels:  iot, internet-of-things
Calvin Base
Calvin is an application environment that lets things talk to things, among other things.
Stars: ✭ 282 (-45.87%)
Mutual labels:  iot, internet-of-things
Waterius
Передача показаний воды по Wi-Fi. Watermeter Wi-Fi transmitter.
Stars: ✭ 295 (-43.38%)
Mutual labels:  iot, internet-of-things

Californium logo

Californium (Cf) - CoAP for Java

Eclipse Californium is a Java implementation of RFC7252 - Constrained Application Protocol 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 http://www.eclipse.org/californium/ and http://coap.technology/.

Build using Maven

You need to have a working maven installation to build Californium. Then simply run the following from the project's root directory:

$ mvn clean install

Executable JARs of the examples with all dependencies can be found in the demo-apps/run folder.

The build-process is tested for jdk 7, jdk 8 and jdk 11. For jdk 7 the revapi maven-plugin is disabled, it requires at least java 8.

To generate the javadocs, add "-DcreateJavadoc=true" to the command line and set the JAVA_HOME.

$ mvn clean install -DcreateJavadoc=true

Build jdk7 compliant

Californium 2.x can be used with java 7 or newer. If you want to build it with a jdk 7, but use also plugins which are only supported for newer jdks, the toolchain plugin could be used. That requires a toolchains configuration in "toolchains.xml" in your maven ".m2" folder

<?xml version="1.0" encoding="UTF8"?>
<toolchains>
	<!-- JDK toolchains -->
	<toolchain>
		<type>jdk</type>
		<provides>
			<version>1.7</version>
		</provides>
		<configuration>
			<jdkHome>path..to..jdk7...home</jdkHome>
		</configuration>
	</toolchain>
</toolchains>

To use the jdk7 toolchain, add "-DuseToolchain=true" to the command line.

$ mvn clean install -DuseToolchain=true

To use the jdk7 toolchain and create javadocs, add "-DuseToolchainJavadoc=true" to the command line (JAVA_HOME is not required).

$ mvn clean install -DuseToolchainJavadoc=true

Build with jdk11 and EdDSA support

To support EdDSA, either java 15, or java 11 with ed25519-java is required at runtime. Using java 15 to build Californium, leaves out ed25519-java, using java 11 for building, includes ed25519-java by default. If ed25519-java should NOT be included into the californium's jars, add -Dno.net.i2p.crypto.eddsa=true to maven's arguments.

$ mvn clean install -Dno.net.i2p.crypto.eddsa=true

In that case, it's still possible to use ed25519-java, if the eddsa-0.3.0.jar is provided to the classpath separately.

Using Californium in Maven Projects

We are publishing Californium's artifacts for milestones and releases to Maven Central. To use the latest released version as a library in your projects, add the following dependency to your pom.xml (without the dots):

  <dependencies>
    ...
    <dependency>
            <groupId>org.eclipse.californium</groupId>
            <artifactId>californium-core</artifactId>
            <version>2.6.1</version>
    </dependency>
    ...
  </dependencies>
  ...
Current Builds

You can also be bold and try out the most recent build from master. However, we are not publishing those to Maven Central but to Californium's project repository at Eclipse only. You will therefore need to add the Eclipse Repository to your pom.xml first:

  <repositories>
    ...
    <repository>
      <id>repo.eclipse.org</id>
      <name>Californium Repository</name>
      <url>https://repo.eclipse.org/content/repositories/californium/</url>
    </repository>
    ...
  </repositories>

You can then simply depend on 3.0.0-SNAPSHOT.

Eclipse

The project can be easily imported into a recent version of the Eclipse IDE. Make sure to have the following before importing the Californium (Cf) projects:

Then choose [Import... » Maven » Existing Maven Projects] to import californium into Eclipse.

IntelliJ

The project can also be imported to IntelliJ as follows:

In IntelliJ, choose [File.. » Open] then select the location of the cloned repository in your filesystem. IntelliJ will then automatically import all projects and resolve required Maven dependencies.

Interop Server

A test server is running at coap://californium.eclipseprojects.io:5683/

(Note: that changed from "californium.eclipse.org" on the 9th. December 2020. All 2.x demo- and plugtest-clients must therefore use the new destination "californium.eclipseprojects.io" explicitly!)

It is an instance of the cf-plugtest-server from the demo-apps. The root resource responds with its current version.

More information can be found at http://www.eclipse.org/californium and technical details at https://projects.eclipse.org/projects/iot.californium.

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

Adapter Selection

For some systems (particularly when multicasting), it may be necessary to specify/restrict californium to a particular network interface, or interfaces. This can be achieved by setting the COAP_NETWORK_INTERFACES JVM parameter to a suitable regex, for example:

java -DCOAP_NETWORK_INTERFACES='.*wpan0' -jar target/cf-helloworld-server-2.6.1.jar MulticastTestServer

Contact

A bug, an idea, an issue? Join the Mailing list or create an issue here on GitHub.

Contributing

Please check out our contribution guidelines

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].