Open Source Software You can use for IoT Development

Rajesh Sola is a faculty member of C-DAC’s Advanced Computing Training School, and an evangelist in the embedded systems and IoT domains



This is an Eclipse IoT project implementing MQTT broker with version 3.1.1 and 3.1 support for backward compatibility. It is licensed under Eclipse public licence 1.0 and EDL 1.0. It also provides client libraries and powerful reference clients. Popular Cloud services like CloudMQTT are built on top of Mosquitto.



This open source PaaS platform is a Linux Foundation collaborative project, and has been released under Apache 2.0 licence. It is available as a service from a few commercial providers like Bluemix or as an open source product to be deployed on one’s own servers. It supports the full life cycle of application development in various languages for IoT needs, and comes with good service support like data storage, messaging, application development and APIs for mobile apps.




This is an Eclipse IoT project offering MQTT clients, licensed under EPL 1.0 and EDL 1.0. It offers synchronous and asynchronous API modes in various languages like C, C++, Java, Python, Go, JavaScript and .Net (C#). It also provides Android service for building mobile apps and reference apps, which can be customised according to an application’s needs.


Eclipse Californium.

This is divided into a few sub-projects. The core comes with Java API model for CoAP client and server design, and a few reference apps. It can be built as a Maven project and can be embedded in other Java applications. The Scandium sub-project implements DTLS 1.2 for secure CoAP. It also provides a proxy library and reference app for CoAP-HTTP bridging. These are dual licensed under EPL 1.0 and EDL 1.0.


Bluez and bindings.

This is an official Linux Bluetooth protocol stack that comes with a user space library and tools. It supports various classical protocols like L2CAP, RFCOMM and SDP, as well as LE protocols and profiles like GATT and GAP. It has Python bindings via PyBluez and Node.js packages. Bleno and noble via npm are available for BLE advertising in peripheral mode and discovery in central mode. These node packages are built on top of Bluez.


CETIC 6LBR and Linux WPAN.

6LowPAN/RPL Border Router (6LBR) can interconnect end devices running on 6LowPAN with the Internet by bridging 802.15.4 network with IPv6 on the gateway side. It supports various 15.4-capable targets like OpenMote, TI CC25xx/26xx platforms and Linux hosts like Raspberry Pi, and can run in Bridge or Router modes. It is based on Contiki project and licensed under similar terms.

Linux WPAN enables 802.15.4 stack at the kernel level and user space tools for 6LowPAN based development on Linux.


Wireshark filters. Wireshark, a well-known network protocol analyser and packet generator, is licensed under GNU GPL. It has rich filter supports for Internet protocols like MQTT, CoAP, HTTP and Websockets. It can also analyse Bluetooth (classic, LE) packets and IEEE 802.15.4 traffic.

This is a reprint of the article published in February issue of Open Source For You magazine.



Please enter your comment!
Please enter your name here