IOT client side libraries in Java

A list of client side libraries for IOT protocols like MQTT, XMPP, AMQP and CoAP in Java language.

 

MQTT:

mqtt-client

mqtt-client provides a ASL 2.0 licensed API to MQTT. It takes care of automatically reconnecting to your MQTT server and restoring your client session if any network failures occur. Applications can use a blocking API style, a futures based API, or a callback/continuations passing API style.

Paho Java Client

The Paho Java Client is an MQTT client library written in Java for developing applications that run on the JVM or other Java compatible platforms such as Android. It provides two APIs: MqttAsyncClient provides a fully asychronous API where completion of activities is notified via registered callbacks. MqttClient is a synchronous wrapper around MqttAsyncClient where functions appear synchronous to the application.

 

XMPP or Jabber:

Smack

Smack is an Open Source XMPP (Jabber) client library for instant messaging and presence. A pure Java library, it can be embedded into your applications to create anything from a full XMPP client to simple XMPP integrations such as sending notification messages and presence-enabling devices.

Babbler

Babbler is a young XMPP client library for Java 8 SE built on top of JAXB, which allows you to write XMPP clients. JAXB as underlying technology makes it robust and allows you to write extensions in a simple and clean manner.

 

AMQP:

Spring AMQP

The Spring AMQP project applies core Spring concepts to the development of AMQP-based messaging solutions. It provides a "template" as a high-level abstraction for sending and receiving messages. It also provides support for Message-driven POJOs with a "listener container". These libraries facilitate management of AMQP resources while promoting the use of dependency injection and declarative configuration. In all of these cases, you will see similarities to the JMS support in the Spring Framework.

Java Broker

A message-oriented middleware message broker written in Java that stores, routes, and forwards messages using AMQP.

 

CoAP

jcoap

jCoAP is a Java Library implementing the Constrained Application Protocol (CoAP). jCoAP is an early-stage project that implements CoAP coming from the University of Rostock. It is compatible to Java SE and Android.

Californium

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