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


Eclipse Kura.

This is an OSGi based container providing various gateway services addressing M2M and IoT needs, licensed under Eclipse public licence 1.0. Kura components are highly configurable through a Web console, which can be done dynamically. Kura supports good connectivity like CANbus, Serial Bus, Bluetooth LE, Cloud services via MQTT, etc, and even for hardware access using OpenJDK Device I/O library. It aims at reducing the barrier between enterprise and embedded systems with a rich set of Java APIs.


This is a toolkit for building embedded applications for IoT on top of POCO C++ libraries and V8 JavaScript engine, licensed under Apache 2.0. The core is implemented in C++ for maximum efficiency and JavaScript is used for application development with its ease of programming. The foundation for is Open Service Platform (OSP), which enables dynamically extensible, modular applications based on the powerful plug-in and services model similar to OSGi in Java.


Eclipse SmartHome and OpenHAB.

Eclipse SmartHome is an OSGi based framework for smart home solutions. It provides a rich set of OSGi bundles for various services and a high degree of modularity.

OpenHAB is a usable product design based on SmartHome framework. It is vendor neutral and hardware/technology agnostic with automation software for rapid development of smart home solutions. Both are licensed under Eclipse public licence 1.0.



This Linux Foundation project is initiated by Open Connectivity Foundation (OCF), formerly known as Open Interconenct Consortium (OIC), which comprises a group of companies including Samsung and Intel. OCF aims at seamless device connectivity and standardisation of communications for billions of devices.

A reference implementation of this standard is released with features like powerful device management, resource management, services and security, as well as communication based on CoAP, and has been released under Apache 2.0 licence. This project also provides a few modules for building cloud services for interconnecting Iotivity clients.


Contiki OS and RIOT OS.

These operating systems are designed for devices with constrained network and memory resources. These come with full IPv4- and IPv6-capable stacks and support low-power wireless standards such as 6LowPAN and RPL, and protocol connectivity like CoAP. Contiki is licensed under BSD 3-Clause and RIOT under GPL 2.1.

Cooja simulator provided by Contiki allows testing of application developments for large wireless networks with emulation of various hardware targets.

RIOT is a user-friendly OS similar to Contiki and comes with additional offerings like a minimal footprint, C++ APIs, threading and real-time capabilities with minimal low overheads.



Even though some level of classification is done based on design goals and primary usage, certain elements are used across layers. For example, Contiki and RIOT can also be used in Layer1, and and Zephyr OS can be used in Layer 2, and so on.

Layer 3

Kaa IoT.

Kaa is a multipurpose middleware platform for connected things and enabling end-to-end IoT solutions. It can be deployed on Amazon Web Services or your own server. A rich set of SDKs can be generated from a Kaa server with APIs in different languages for seamless device connectivity. It can integrate with many databases, data processing elements like Mongodb, Apache Spark and Cassandra with support for structured and unstructured data and messaging frameworks like Apache Kafka. It enables highly-available servers with clustering support, thus reducing downtime and precluding single points of failure using Zookeeper support.



This is an open platform for the IoT with good protocol support and powerful device and asset management services, and is licensed under common public attribution licence 1.0 (CPAL-1.0). It is designed as a multi-tenant system to host multiple applications in a single instance of deployment. Popular open source solutions like Apache Spark, OpenHAB and InfluDb/Grafana can be integrated by SiteWhere. It can be deployed on public Clouds such as Azure and Amazon EC2, service providers based on Ubuntu Juju and Docker, or your own server.


InfluxData TICK stack.

InfluxData provides TICK stack with four powerful components for time series data management. It is written in Go language and licensed under MIT terms. The components are:
1. Telegraf, used for data collection and publishing metrics with a rich set of input, output and service plugins.
2. InfluxDb, a time series data-base with high availability and high performance without any external dependencies (unlike other open source time series models like OpenTSDB based on Hbase or KairosDB based on Cassandra). It has good support for down-sampling high-precision data and data-retention policies.
3. Chronograf, a visualisation tool for exploring data.
4. Kapacitor, which is used for data processing with alert management and ETL jobs.



Please enter your comment!
Please enter your name here