Files
awesome-awesomeness/terminal/openiot
2024-04-19 23:37:46 +02:00

154 KiB

awesome-open-iot !Awesome (https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg) (https://github.com/sindresorhus/awesome)
 
A curated list of awesome open source IoT frameworks, libraries and software.
 
Note that the list only features components we think are particularly relevant for IoT (e.g they are appropriate for use in embedded IoT devices, deal with the specific constraints of IoT communication networks, etc.). The reader will
want to refer to the Awesome (https://github.com/sindresorhus/awesome) catalog for more references in his/her programming language or technical field of choice.
 
- Awesome Open IoT (#awesome-open-iot)
Connectivity (#connectivity)
+ **Bluetooth 4.0, Bluetooth Smart (BLE)** (#bluetooth-40-bluetooth-smart-ble)
+ **enOcean** (#enocean)
+ **KNX** (#knx)
+ **LoRa / LoRaWAN** (#lora--lorawan)
+ **NFC** (#nfc)
+ **RS-232 / Serial** (#rs-232--serial)
+ **RS-485** (#rs-485)
+ **ZigBee** (#zigbee)
+ **Z-Wave** (#z-wave)
Data Encoding (#data-encoding)
+ **CBOR** (#cbor)
+ **FlatBuffers** (#flatbuffers)
+ **Protocol Buffers** (#protocol-buffers)
Data Visualization (#data-visualization)
Data Storage (#data-storage)
Device Discovery (#device-discovery)
+ **mDNS / Bonjour** (#mdns--bonjour)
+ **uPNP** (#upnp)
Gateway (#gateway)
Home Automation (#home-automation)
Messaging (#messaging)
+ **CoAP** (#coap)
+ **Modbus** (#modbus)
+ **MQTT** (#mqtt)
+ **MQTT-SN** (#mqtt-sn)
+ **OPC-UA** (#opc-ua)
Operating Systems (#operating-systems)
Remote Management (#remote-management)
+ **LWM2M** (#lwm2m)
+ **OMA-DM** (#oma-dm)
+ **SNMP** (#snmp)
+ **TR-069** (#tr-069)
Robotics and Physical computing (#robotics-and-physical-computing)
Security (#security)
+ **DNS-SEC** (#dns-sec)
+ **DTLS** (#dtls)
+ **TLS** (#tls)
Workflow management (#workflow-management)
- Contributing (#contributing)
 
Connectivity
 
Bluetooth 4.0, Bluetooth Smart (BLE)
 
Name Description LicenseLanguage
├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────┼───────┼────────┤
bluez (http://www.bluez.org/) Official Linux Bluetooth protocol stack GPL C
Gatt (https://github.com/paypal/gatt) !GitHub stars (https://img.shields.io/github/stars/paypal/gatt.svg?style=social&label=Star&maxAge=2592000) () Gatt is a Go package for building Bluetooth Low Energy peripheralsBSD-3 Go
noble (https://github.com/sandeepmistry/noble) !GitHub stars A Node.js BLE (Bluetooth Low Energy) central module MIT Node.js
(https://img.shields.io/github/stars/sandeepmistry/noble.svg?style=social&label=Star&maxAge=2592000) ()
 
 
enOcean
 
Name Description LicenseLanguage
├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────┼───────┼────────┤
EnJ (https://github.com/dog-gateway/enj-library) !GitHub stars EnJ: EnOcean Java library ASL Java
(https://img.shields.io/github/stars/dog-gateway/enj-library.svg?style=social&label=Star&maxAge=2592000) ()
Python EnOcean (https://github.com/kipe/enocean) !GitHub stars A Python library for reading and controlling EnOcean devices MIT Python
(https://img.shields.io/github/stars/kipe/enocean.svg?style=social&label=Star&maxAge=2592000) ()
serialport-enocean-parser (https://github.com/RafaelKa/node-serialport-enocean-parser) !GitHub stars An EnOcean Serial Protocol 3 (ESP3) parser for node-serialportWTFPL Node.js
(https://img.shields.io/github/stars/RafaelKa/node-serialport-enocean-parser.svg?style=social&label=Star&maxAge=2592000) ()
 
KNX
 
TBC
 
LoRa / LoRaWAN
 
Name Description LicenseLanguage
├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────┼───────┼────────┤
LoRa packet forwarder (https://github.com/Lora-net/packet_forwarder) !GitHub stars A program running on the host of a Lora Gateway that forward RF packets receive by the BSD-3 C
(https://img.shields.io/github/stars/Lora-net/packet_forwarder.svg?style=social&label=Star&maxAge=2592000) () concentrator to a server through a IP/UDP link, and emits RF packets that are sent by the
server.
The Things Network (https://github.com/TheThingsNetwork/ttn) !GitHub stars A complete LoRaWAN network stack (router, broker, message handler) MIT Go
(https://img.shields.io/github/stars/TheThingsNetwork/ttn.svg?style=social&label=Star&maxAge=2592000) ()
 
NFC
 
Name Description LicenseLanguage
├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────────────────────────────┼───────┼────────┤
libnfc (https://github.com/nfc-tools/libnfc) !GitHub stars libnfc is a library which allows userspace application access to NFC devices.LGPL v3C
(https://img.shields.io/github/stars/nfc-tools/libnfc.svg?style=social&label=Star&maxAge=2592000) ()
Go NFC (https://github.com/fuzxxl/nfc) !GitHub stars Go bindings for libnfc LGPL v3Go
(https://img.shields.io/github/stars/fuzxxl/nfc.svg?style=social&label=Star&maxAge=2592000) ()
Node NFC (https://github.com/camme/node-nfc) !GitHub stars Node.js bindings for libnfc MIT Node.js
(https://img.shields.io/github/stars/camme/node-nfc.svg?style=social&label=Star&maxAge=2592000) ()
Java NFC (https://github.com/grundid/nfctools) !GitHub stars nfctools library for Java ASL Java
(https://img.shields.io/github/stars/grundid/nfctools.svg?style=social&label=Star&maxAge=2592000) ()
 
RS-232 / Serial
 
Name Description License Language
├───────────────────────────────────────────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────┼──────────────────────────┼────────┤
Java Simple Serial Connector (https://github.com/Fazecast/jSerialComm) !GitHub stars Platform-independent serial port access for Java LGPL Java
(https://img.shields.io/github/stars/Fazecast/jSerialComm.svg?style=social&label=Star&maxAge=259200
0) ()
rxtx (https://github.com/rxtx/rxtx) !GitHub stars A Java cross platform wrapper library for the serial port LGPL Java/C
(https://img.shields.io/github/stars/rxtx/rxtx.svg?style=social&label=Star&maxAge=2592000) ()
OpenJDK Device/IO (http://openjdk.java.net/projects/dio/) The Device I/O Project provides a Java-level API for accessing generic device peripherals on GPL w/ classpath exceptionJava/C
embedded devices.
 
RS-485
 
TBC
 
ZigBee
 
TBC
 
Z-Wave
 
TBC
 
Data Encoding
 
This section focuses on data encoding formats that are particularly appropriate for IoT scenarios (i.e bandwidth or battery efficient, small memory footprint, …)
 
CBOR
 
Name Description LicenseLanguage
├────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────┼───────┼────────┤
TinyCBOR (https://github.com/01org/tinycbor) !GitHub stars TinyCBOR is Intel's industrial strength C/C++ implementation of CBOR, as used in the IoTivity framework.MIT C
(https://img.shields.io/github/stars/01org/tinycbor.svg?style=social&label=Star&maxAge=2592000) ()
 
More at: http://cbor.io/impls.html
 
FlatBuffers
 
Name Description License Language
├────────────────────────────────────────────────────────────────────────────────────────────────┼───────────────────────────────────────────────────────────────────────────────────┼───────┼─────────────────────────────────────────────┤
Offical libraries from Google (https://github.com/google/flatbuffers) !GitHub stars FlatBuffers is an efficient cross platform serialization library for games and ASLv2 C++, C#, C, Go, Java, JavaScript, PHP, Python
(https://img.shields.io/github/stars/google/flatbuffers.svg?style=social&label=Star&maxAge=25920other memory constrained apps.
00) ()
 
Protocol Buffers
 
Name Description License Language
├─────────────────────────────────────────────────────────────────────────────────────┼───────────────────────────────────────────────────────────────────────────────────┼───────┼────────────────────────────────────────────────────────┤
Offical libraries from Google (https://github.com/google/protobuf) !GitHub stars Protocol Buffers (a.k.a., protobuf) are Google's language-neutral, BSD-3 C++, Java, Python, Objective-C, C#, JavaScript, Ruby, Go
(https://img.shields.io/github/stars/google/protobuf.svg?style=social&label=Star&maxAplatform-neutral, extensible mechanism for serializing structured data.
ge=2592000) ()
nanopb (https://github.com/nanopb/nanopb) !GitHub stars Nanopb is a small code-size Protocol Buffers implementation in ansi C. It is BSD-3 C
(https://img.shields.io/github/stars/nanopb/nanopb.svg?style=social&label=Star&maxAgeespecially suitable for use in microcontrollers, but fits any memory restricted
=2592000) () system.

 
Data Visualization
 
See awesome-dataviz (https://github.com/fasouto/awesome-dataviz).
 
Data Storage
 
Name Description License Language
├────────────────────────────────────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┤
CrateDB (https://github.com/crate/crate) !GitHub stars CrateDB is a distributed SQL database that makes it simple to store and analyze massive amounts of machine data in real-time.Apache 2.0Java
(https://img.shields.io/github/stars/crate/crate.svg?style=social&label=Star&maxAge=2592
000) ()
 
Device Discovery
 
mDNS / Bonjour
 
Name Description LicenseLanguage
├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────────────────────┼───────┼────────┤
mdns (https://github.com/hashicorp/mdns) !GitHub stars Simple mDNS client/server library in Golang MIT Go
(https://img.shields.io/github/stars/hashicorp/mdns.svg?style=social&label=Star&maxAge=2592000) ()
bonjour (https://github.com/oleksandr/bonjour) !GitHub stars mDNS/DNS-SD (also known as Apple Bonjour) library for Go (in pure Go)MIT Go
(https://img.shields.io/github/stars/oleksandr/bonjour.svg?style=social&label=Star&maxAge=2592000) ()
node_mdns (http://agnat.github.io/node_mdns) !GitHub stars mDNS/zeroconf/bonjour service discovery add-on for Node.js MIT Node.js
(https://img.shields.io/github/stars/agnat/node_mdns.svg?style=social&label=Star&maxAge=2592000) ()
mdnsjava (https://github.com/posicks/mdnsjava) !GitHub stars Multicast DNS (mDNS) & DNS-Based Service Discovery (DNS-SD) in Java BSD Java
(https://img.shields.io/github/stars/posicks/mdnsjava.svg?style=social&label=Star&maxAge=2592000) ()
 
uPNP
 
Name Description License Language
├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼──────────────────────────────────────┼─────────────┼────────┤
goupnp (https://github.com/huin/goupnp) !GitHub stars (https://img.shields.io/github/stars/huin/goupnp.svg?style=social&label=Star&maxAge=2592000) () goupnp is a UPnP client library for GoBSD-2 Go
UpnpServer (https://github.com/oeuillot/upnpserver) !GitHub stars (https://img.shields.io/github/stars/oeuillot/upnpserver.svg?style=social&label=Star&maxAge=2592000) ()Fast and light upnp server for Node.jsGPLv2 Node.js
Cling (http://4thline.org/projects/cling/) Java/Android UPnP library and tools LGPL/CDDL-1.0Java
 
Gateway
 
Name Description LicenseLanguage
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼───────┼────────┤
Eclipse Kura (https://eclipse.org/kura) !GitHub stars Eclipse Kura is a Java/OSGi-based framework for IoT gateways Java
(https://img.shields.io/github/stars/eclipse/kura.svg?style=social&label=Star&maxAge=25920
00) ()
OpenWrt (https://openwrt.org/) OpenWrt is an embedded operating system based on the Linux kernel, primarily used on embedded devices to route network trafficGPLv2 C, Lua
UBOS (http://ubos.net) !GitHub stars UBOS is an Arch-derived Linux distro optimized for cost-efficient administration Personal Servers and Indie IoT Devices Linux many
(https://img.shields.io/github/stars/uboslinux/ubos-admin.svg?style=social&label=Star&maxA
ge=2592000) ()
 
Home Automation
 
Name Description LicensLangua
e ge
├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────────────────────────────┼──────┼──────┤
Calaos (https://calaos.fr/en/) !GitHub stars Calaos is a free software project (GPLv3) that lets you control and monitor your GPLv3 C++
(https://img.shields.io/github/stars/calaos/calaos_base.svg?style=social&label=Star&maxAge=2592000) () home.
Freedomotic (http://www.freedomotic.com) !GitHub stars Freedomotic is an open source, flexible, secure Internet of Things (IoT) developmentGPLv2 Java
(https://img.shields.io/github/stars/freedomotic/freedomotic.svg?style=social&label=Star&maxAge=2592000) () framework, useful to build and manage modern smart spaces.
openHAB (https://github.com/openhab/openhab) !GitHub stars The open Home Automation Bus (openHAB) project aims at providing a universal EPL Java
(https://img.shields.io/github/stars/openhab/openhab.svg?style=social&label=Star&maxAge=2592000) () integration platform for all things around home automation
Eclipse SmartHome (http://eclipse.org/smarthome) !GitHub stars The Eclipse SmartHome project is a framework that allows building smart home EPL Java
(https://img.shields.io/github/stars/eclipse/smarthome.svg?style=social&label=Star&maxAge=2592000) () solutions that have a strong focus on heterogeneous environments. It provides a
uniform access to devices and information and to facilitate different kinds of
interactions with them.
Home Assistant (https://home-assistant.io) !GitHub stars Home Assistant is a home automation platform running on Python 3. It is able to ApachePython
(https://img.shields.io/github/stars/home-assistant/home-assistant.svg?style=social&label=Star&maxAge=2592000) () track and control all devices at home and offer a platform for automating control. 2.0 3
 
Messaging
 
CoAP
 
Name Description License Language
├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────┼───────┼───────────┤
Californium (http://www.eclipse.org/californium) !GitHub stars Californium is a Java CoAP implementation for IoT Cloud services. EPL/EDLJava
(https://img.shields.io/github/stars/eclipse/californium.svg?style=social&label=Star&maxAge=2592000) ()
microcoap (https://github.com/1248/microcoap) !GitHub stars A small CoAP implementation for microcontrollers MIT C (Arduino)
(https://img.shields.io/github/stars/1248/microcoap.svg?style=social&label=Star&maxAge=2592000) ()
gocoap (https://github.com/dustin/go-coap) !GitHub stars Implementation of CoAP in go MIT Go
(https://img.shields.io/github/stars/dustin/go-coap.svg?style=social&label=Star&maxAge=2592000) ()
node-coap (https://github.com/mcollina/node-coap) !GitHub stars node-coap is a Node.js client and server library for CoAP modelled after the http MIT Node.js
(https://img.shields.io/github/stars/mcollina/node-coap.svg?style=social&label=Star&maxAge=2592000) () module.
 
Modbus
 
Name Description LicensLangu
e age
├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼───────────────────────────────────────────────────────────────────────┼──────┼─────┤
go modbus (https://github.com/goburrow/modbus) !GitHub stars Fault-tolerant implementation of modbus protocol in Go BSD-3 Go
(https://img.shields.io/github/stars/goburrow/modbus.svg?style=social&label=Star&maxAge=2592000) ()
j2mod (https://github.com/steveohara/j2mod) !GitHub stars Enhanced Modbus library implemented in the Java programming language ApacheJava
(https://img.shields.io/github/stars/steveohara/j2mod.svg?style=social&label=Star&maxAge=2592000) ()
libmodbus (https://github.com/stephane/libmodbus) !GitHub stars libmodbus is a free software library to send/receive data with a deviceLGPL C
(https://img.shields.io/github/stars/stephane/libmodbus.svg?style=social&label=Star&maxAge=2592000) () which respects the Modbus protocol. This library can use a serial port v2.1
or an Ethernet connection.
modbus4j (https://github.com/infiniteautomation/modbus4j) !GitHub stars A high-performance and ease-of-use implementation of the Modbus GPL v3Java
(https://img.shields.io/github/stars/infiniteautomation/modbus4j.svg?style=social&label=Star&maxAge=2592000) () protocol written in Java by Infinite Automation Systems and Serotonin
Software. Supports ASCII, RTU, TCP, and UDP transports as slave or
master, automatic request partitioning and response data type parsing.
node-modbus-stack (https://github.com/TooTallNate/node-modbus-stack) !GitHub stars A StreamStack implementation of the MODBUS protocol, for NodeJS. MIT Node.
(https://img.shields.io/github/stars/TooTallNate/node-modbus-stack.svg?style=social&label=Star&maxAge=2592000) () js
pymodbus (https://github.com/bashwork/pymodbus) !GitHub stars A full modbus protocol written in Python BSD Pytho
(https://img.shields.io/github/stars/bashwork/pymodbus.svg?style=social&label=Star&maxAge=2592000) () n
 
MQTT
 
Name Description License Language
├───────────────────────────────────────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────┼───────┼─────────────────────────────────────────────────┤
Eclipse Paho (http://www.eclipse.org/paho/) The Eclipse Paho project provides open-source client implementations of MQTT EPL/EDLJava, Python, Javascript, Go, C, .Net (C#),
Embedded C/C++
Eclipse Mosquitto (https://mosquitto.org) !GitHub stars Eclipse Mosquitto is an open source message broker that implements the MQTT protocol EPL/EDLC, Python
(https://img.shields.io/github/stars/eclipse/mosquitto.svg?style=social&label=Star&maxAversions 3.1 and 3.1.1. ... This makes it suitable for "Internet of Things" messaging
ge=2592000) () such as with low power sensors or mobile devices such as phones, embedded computers or
microcontrollers like the Arduino.
Moquette (https://github.com/andsel/moquette) !GitHub stars Moquette is a lightweight MQTT broker in Java ASLv2 Java
(https://img.shields.io/github/stars/andsel/moquette.svg?style=social&label=Star&maxAge
=2592000) ()
MQTT.js (https://github.com/mqttjs/MQTT.js) !GitHub stars MQTT.js is a client library for the MQTT protocol, written in JavaScript for node.js andMIT Javascript
(https://img.shields.io/github/stars/mqttjs/MQTT.js.svg?style=social&label=Star&maxAge=the browser.
2592000) ()

 
MQTT-SN
 
Name Description LicenseLanguage
├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────────────────────────────┼───────┼────────┤
mqtt-sn-tools (https://github.com/njh/mqtt-sn-tools) !GitHub stars Command line tools written in C for the MQTT-SN (MQTT for Sensor Networks) protocol.MIT C
(https://img.shields.io/github/stars/njh/mqtt-sn-tools.svg?style=social&label=Star&maxAge=2592000) ()
 
OPC-UA
 
Name Description LicenseLanguage
├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼───────────────────────────────────────────────────────────────────────────────────────┼───────┼────────┤
Eclipse Milo (https://eclipse.org/milo) !GitHub stars Eclipse Milo provides all the tools necessary to implement OPC Unified Architecture EPL/EDLJava
(https://img.shields.io/github/stars/eclipse/milo.svg?style=social&label=Star&maxAge=2592000) () (UA) client and/or server functionality in any JVM-based project.
node-opcua (http://node-opcua.github.io/) !GitHub stars An implementation of a OPC UA stack fully written in Javascript and Node.js MIT Node.js
(https://img.shields.io/github/stars/node-opcua/node-opcua.svg?style=social&label=Star&maxAge=2592000) ()
OPC UA .NET (http://opcfoundation.github.io/UA-.NET/) !GitHub stars The official OPC Foundation OPC UA .NET Stack and sample applications. GPLv2 .Net
(https://img.shields.io/github/stars/OPCFoundation/UA-.NET.svg?style=social&label=Star&maxAge=2592000) ()
open62541 (http://open62541.org/) !GitHub stars An open source and free C (C99) OPC UA stack licensed MPLv2 C
(https://img.shields.io/github/stars/open62541/open62541.svg?style=social&label=Star&maxAge=2592000) ()
 
Operating Systems
 
Name Description License Language
├───────────────────────────────────────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼────────┼────────┤
Contiki (https://github.com/contiki-os/contiki) !GitHub stars Contiki is an open source operating system for the Internet of Things. Contiki connects tiny low-cost, low-power BSD-3 C
(https://img.shields.io/github/stars/contiki-os/contiki.svg?style=social&label=Star&maxmicrocontrollers to the Internet.
Age=2592000) ()
FreeRTOS (http://www.freertos.org/) A cross-platform real-time operating system GPL-likeC
mbed OS (https://www.mbed.com/en/development/software/mbed-os/) ARM® mbed™ OS is an open source embedded operating system designed specifically for the "things" in the Internet of Things ASLv2 C/C++
(IoT). It includes all the features you need to develop a connected product based on an ARM Cortex-M microcontroller
OpenWrt (https://openwrt.org/) OpenWrt is an embedded operating system based on the Linux kernel, primarily used on embedded devices to route network traffic GPLv2 C, Lua
RIOT-OS (https://github.com/RIOT-OS/RIOT) !GitHub stars RIOT OS is an operating system for Internet of Things (IoT) devices. It is based on a microkernel and designed for energy LGPL C
(https://img.shields.io/github/stars/RIOT-OS/RIOT.svg?style=social&label=Star&maxAge=25efficiency, hardware independent development and a high degree of modularity
92000) ()
UBOS (http://ubos.net) !GitHub stars UBOS is an Arch-derived Linux distro optimized for cost-efficient administration Personal Servers and Indie IoT Devices Linux many
(https://img.shields.io/github/stars/uboslinux/ubos-admin.svg?style=social&label=Star&m
axAge=2592000) ()
Zephyr (https://www.zephyrproject.org/) Zephyr Project is a small, scalable real-time operating system for use on resource-constrained systems supporting multiple ASLv2 C
architectures.
 
Remote Management
 
Libraries that can be used to implement remote management of IoT devices
 
LWM2M
 
Name Description LicenseLanguage
├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼───────┼────────┤
Betwixt (https://github.com/zubairhamed/betwixt) !GitHub stars Betwixt is a LWM2M Client and Server in Go ASL Go
(https://img.shields.io/github/stars/zubairhamed/betwixt.svg?style=social&label=Star&maxAge=2592000) ()
Eclipse Leshan (https://eclipse.org/leshan) !GitHub stars Eclipse Leshan is a LWM2M implementation in Java EPL/EDLJava
(https://img.shields.io/github/stars/eclipse/leshan.svg?style=social&label=Star&maxAge=2592000) ()
lwm2m-node-lib (https://github.com/telefonicaid/lwm2m-node-lib) !GitHub stars lwm2m-node-lib is a library for building LWM2M applications (client and AGPL Node.js
(https://img.shields.io/github/stars/telefonicaid/lwm2m-node-lib.svg?style=social&label=Star&maxAge=2592000) () server) in Javascript
Eclipse Wakaama (https://eclipse.org/wakaama) !GitHub stars Eclipse Wakaama is a LWM2M implementation in C EPL/EDLC
(https://img.shields.io/github/stars/eclipse/wakaama.svg?style=social&label=Star&maxAge=2592000) ()
AwaLWM2M (https://github.com/FlowM2M/AwaLWM2M) !GitHub stars Awa LWM2M is an implementation of the OMA Lightweight M2M protocol in C BSD-3 C
(https://img.shields.io/github/stars/flowm2m/awalwm2m.svg?style=social&label=Star&maxAge=2592000) ()
 
 
OMA-DM
 
Name Description LicenseLanguage
├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────────────┼───────┼────────┤
libdmclient (https://github.com/01org/libdmclient) !GitHub stars libdmclient implements the client-side of OMA DM 1.2 protocolASL C
(https://img.shields.io/github/stars/01org/libdmclient.svg?style=social&label=Star&maxAge=2592000) ()
 
SNMP
 
Name Description LicenseLanguage
├───────────────────────────────────────────────────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼───────┼────────┤
SNMP4J (http://www.snmp4j.org/) SNMP4J is an enterprise class free open source and state-of-the-art SNMP implementation for Java™ SE 1.4 or laterASL Java
GoSNMP (https://github.com/alouca/gosnmp) !GitHub stars A simple SNMP library written in Go BSD Go
(https://img.shields.io/github/stars/alouca/gosnmp.svg?style=social&label=Star&maxAge=2592000) ()
 
TR-069
 
Name Description LicenseLanguage
├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────────┼───────┼────────┤
netcwmp (https://github.com/netcwmp/netcwmp) !GitHub stars (https://img.shields.io/github/stars/netcwmp/netcwmp.svg?style=social&label=Star&maxAge=2592000) ()A software client for enabling TR-069 in embedded devicesASLv2 C
 
Robotics and Physical computing
 
Name Description LicenseLanguage
├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────┼───────┼────────┤
Artoo (https://github.com/hybridgroup/artoo) !GitHub stars Artoo is a micro-framework for robotics using Ruby. ASLv2 Ruby
(https://img.shields.io/github/stars/hybridgroup/artoo.svg?style=social&label=Star&maxAge=2592000) ()
Cylon.js (https://github.com/hybridgroup/cylon) !GitHub stars Cylon.js is a JavaScript framework for robotics, physical computing, and the Internet of ASLv2 Node.js
(https://img.shields.io/github/stars/hybridgroup/cylon.svg?style=social&label=Star&maxAge=2592000) () Things.
Gobot (https://github.com/hybridgroup/gobot) !GitHub stars Gobot is a framework using the Go programming language for robotics, physical computing, and ASLv2 Go
(https://img.shields.io/github/stars/hybridgroup/gobot.svg?style=social&label=Star&maxAge=2592000) () the Internet of Things.
 
Security
 
DNS-SEC
 
Name Description LicenseLanguage
├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────┼───────┼────────┤
Dnsruby (https://github.com/alexdalitz/dnsruby) !GitHub stars Dnsruby is a pure Ruby DNS client library which implements a stub resolver and supports DNSSECASLv2 Ruby
(https://img.shields.io/github/stars/alexdalitz/dnsruby.svg?style=social&label=Star&maxAge=2592000) ()
dnssecjava (https://github.com/ibauersachs/dnssecjava) !GitHub stars A DNSSEC validating stub resolver for Java. EPL Java
(https://img.shields.io/github/stars/ibauersachs/dnssecjava.svg?style=social&label=Star&maxAge=2592000) ()
 
DTLS
 
Name Description License Language
├───────────────────────────────────────────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼──────────────┼──────────┤
DTLS Go (https://github.com/cfromknecht/dtls) !GitHub stars DTLS 1.2 in Go MIT Go
(https://img.shields.io/github/stars/cfromknecht/dtls.svg?style=social&label=Star&maxAge=25
92000) ()
Eclipse Scandium ( http://www.eclipse.org/californium) !GitHub stars The Scandium (Sc) sub-project within Californium implements DTLS 1.2 to secure your application through ECC with EPL/EDL Java
(https://img.shields.io/github/stars/eclipse/californium.svg?style=social&label=Star&maxAgepre-shared keys, certificates, or raw public keys.
=2592000) ()
Eclipse TinyDTLS ( http://www.eclipse.org/tinydtls) tinydtls is a library for Datagram Transport Layer Security (DTLS) covering both the client and the server state EPL/EDL C
machine. tinydtls is a library for Datagram Transport Layer Security (DTLS) covering both the client and the server
state machine.
mbed TLS (https://tls.mbed.org/) mbed TLS (previously PolarSSL) is an implementation of the TLS and SSL protocols and the respective cryptographic ASLv2 C
algorithms and support code required.
OpenSSL (https://www.openssl.org/) OpenSSL is an open source project that provides a robust, commercial-grade, and full-featured toolkit for the OpenSSL/SSLeayC/Assembly
Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols.
PyDTLS (https://github.com/rbit/pydtls) !GitHub stars Datagram Transport Layer Security for Python ASLv2 Python
(https://img.shields.io/github/stars/rbit/pydtls.svg?style=social&label=Star&maxAge=2592000
) ()
 
TLS
 
Name Description License Language
├──────────────────────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼──────────────┼──────────┤
mbed TLS (https://tls.mbed.org/) mbed TLS (previously PolarSSL) is an implementation of the TLS and SSL protocols and the respective cryptographic algorithms and support code required. ASLv2 C
OpenSSL (https://www.openssl.org/)OpenSSL is an open source project that provides a robust, commercial-grade, and full-featured toolkit for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) OpenSSL/SSLeayC/Assembly
protocols.
 
Workflow management
 
Name Description LicenseLanguage
├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼───────────────────────────────────────────────────────────────────────────────────┼───────┼────────┤
Node-RED (https://github.com/node-red/node-red) !GitHub stars A visual tool for wiring the Internet of Things. ASL Node.js
(https://img.shields.io/github/stars/node-red/node-red.svg?style=social&label=Star&maxAge=2592000) ()
huginn (https://github.com/cantino/huginn) !GitHub stars Huginn is a system for building agents that perform automated tasks for you online.MIT Ruby
(https://img.shields.io/github/stars/cantino/huginn.svg?style=social&label=Star&maxAge=2592000) ()
Nebula (http://nebula.readthedocs.io) A docker orchestrator designed to manage IoT devices GPL v3 Python
 
Contributing
 
Contributions are very welcome! In order to be considered an Awesome Open IoT project you need the following:
Valid OSI approved license (https://opensource.org/licenses/alphabetical),
Proven record of regular commits,
Significant community interest shown through GitHub stars,
Project is focused on solving problems that are specific to IoT.
 
Please also have a look at this contributing guide (https://github.com/akullpp/awesome-java/blob/master/CONTRIBUTING.md) for some general guidelines.