Files
awesome-awesomeness/html/openiot.html
2024-04-20 19:22:54 +02:00

1458 lines
43 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<h1 id="awesome-open-iot-awesome">awesome-open-iot <a
href="https://github.com/sindresorhus/awesome"><img
src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg"
alt="Awesome" /></a></h1>
<p>A curated list of awesome open source IoT frameworks, libraries and
software.</p>
<p>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 <a
href="https://github.com/sindresorhus/awesome">Awesome</a> catalog for
more references in his/her programming language or technical field of
choice.</p>
<ul>
<li><a href="#awesome-open-iot">Awesome Open IoT</a>
<ul>
<li><a href="#connectivity">Connectivity</a>
<ul>
<li><a href="#bluetooth-40-bluetooth-smart-ble">Bluetooth 4.0, Bluetooth
Smart (BLE)</a></li>
<li><a href="#enocean">enOcean</a></li>
<li><a href="#knx">KNX</a></li>
<li><a href="#lora--lorawan">LoRa / LoRaWAN</a></li>
<li><a href="#nfc">NFC</a></li>
<li><a href="#rs-232--serial">RS-232 / Serial</a></li>
<li><a href="#rs-485">RS-485</a></li>
<li><a href="#zigbee">ZigBee</a></li>
<li><a href="#z-wave">Z-Wave</a></li>
</ul></li>
<li><a href="#data-encoding">Data Encoding</a>
<ul>
<li><a href="#cbor">CBOR</a></li>
<li><a href="#flatbuffers">FlatBuffers</a></li>
<li><a href="#protocol-buffers">Protocol Buffers</a></li>
</ul></li>
<li><a href="#data-visualization">Data Visualization</a></li>
<li><a href="#data-storage">Data Storage</a></li>
<li><a href="#device-discovery">Device Discovery</a>
<ul>
<li><a href="#mdns--bonjour">mDNS / Bonjour</a></li>
<li><a href="#upnp">uPNP</a></li>
</ul></li>
<li><a href="#gateway">Gateway</a></li>
<li><a href="#home-automation">Home Automation</a></li>
<li><a href="#messaging">Messaging</a>
<ul>
<li><a href="#coap">CoAP</a></li>
<li><a href="#modbus">Modbus</a></li>
<li><a href="#mqtt">MQTT</a></li>
<li><a href="#mqtt-sn">MQTT-SN</a></li>
<li><a href="#opc-ua">OPC-UA</a></li>
</ul></li>
<li><a href="#operating-systems">Operating Systems</a></li>
<li><a href="#remote-management">Remote Management</a>
<ul>
<li><a href="#lwm2m">LWM2M</a></li>
<li><a href="#oma-dm">OMA-DM</a></li>
<li><a href="#snmp">SNMP</a></li>
<li><a href="#tr-069">TR-069</a></li>
</ul></li>
<li><a href="#robotics-and-physical-computing">Robotics and Physical
computing</a></li>
<li><a href="#security">Security</a>
<ul>
<li><a href="#dns-sec">DNS-SEC</a></li>
<li><a href="#dtls">DTLS</a></li>
<li><a href="#tls">TLS</a></li>
</ul></li>
<li><a href="#workflow-management">Workflow management</a></li>
</ul></li>
<li><a href="#contributing">Contributing</a></li>
</ul>
<h2 id="connectivity">Connectivity</h2>
<h3 id="bluetooth-4.0-bluetooth-smart-ble">Bluetooth 4.0, Bluetooth
Smart (BLE)</h3>
<table style="width:100%;">
<colgroup>
<col style="width: 66%" />
<col style="width: 26%" />
<col style="width: 3%" />
<col style="width: 3%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Description</th>
<th>License</th>
<th>Language</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><a href="http://www.bluez.org/">bluez</a></td>
<td>Official Linux Bluetooth protocol stack</td>
<td>GPL</td>
<td>C</td>
</tr>
<tr class="even">
<td><a href="https://github.com/paypal/gatt">Gatt</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/paypal/gatt.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>Gatt is a Go package for building Bluetooth Low Energy
peripherals</td>
<td>BSD-3</td>
<td>Go</td>
</tr>
<tr class="odd">
<td><a href="https://github.com/sandeepmistry/noble">noble</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/sandeepmistry/noble.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>A Node.js BLE (Bluetooth Low Energy) central module</td>
<td>MIT</td>
<td>Node.js</td>
</tr>
</tbody>
</table>
<h3 id="enocean">enOcean</h3>
<table>
<colgroup>
<col style="width: 73%" />
<col style="width: 20%" />
<col style="width: 2%" />
<col style="width: 3%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Description</th>
<th>License</th>
<th>Language</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><a href="https://github.com/dog-gateway/enj-library">EnJ</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/dog-gateway/enj-library.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>EnJ: EnOcean Java library</td>
<td>ASL</td>
<td>Java</td>
</tr>
<tr class="even">
<td><a href="https://github.com/kipe/enocean">Python EnOcean</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/kipe/enocean.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>A Python library for reading and controlling EnOcean devices</td>
<td>MIT</td>
<td>Python</td>
</tr>
<tr class="odd">
<td><a
href="https://github.com/RafaelKa/node-serialport-enocean-parser">serialport-enocean-parser</a>
<br> <a href=""><img
src="https://img.shields.io/github/stars/RafaelKa/node-serialport-enocean-parser.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>An EnOcean Serial Protocol 3 (ESP3) parser for node-serialport</td>
<td>WTFPL</td>
<td>Node.js</td>
</tr>
</tbody>
</table>
<h3 id="knx">KNX</h3>
<p>TBC</p>
<h3 id="lora-lorawan">LoRa / LoRaWAN</h3>
<table>
<colgroup>
<col style="width: 49%" />
<col style="width: 45%" />
<col style="width: 2%" />
<col style="width: 2%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Description</th>
<th>License</th>
<th>Language</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><a href="https://github.com/Lora-net/packet_forwarder">LoRa packet
forwarder</a> <br> <a href=""><img
src="https://img.shields.io/github/stars/Lora-net/packet_forwarder.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>A program running on the host of a Lora Gateway that forward RF
packets receive by the concentrator to a server through a IP/UDP link,
and emits RF packets that are sent by the server.</td>
<td>BSD-3</td>
<td>C</td>
</tr>
<tr class="even">
<td><a href="https://github.com/TheThingsNetwork/ttn">The Things
Network</a> <br> <a href=""><img
src="https://img.shields.io/github/stars/TheThingsNetwork/ttn.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>A complete LoRaWAN network stack (router, broker, message
handler)</td>
<td>MIT</td>
<td>Go</td>
</tr>
</tbody>
</table>
<h3 id="nfc">NFC</h3>
<table>
<colgroup>
<col style="width: 63%" />
<col style="width: 29%" />
<col style="width: 3%" />
<col style="width: 3%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Description</th>
<th>License</th>
<th>Language</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><a href="https://github.com/nfc-tools/libnfc">libnfc</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/nfc-tools/libnfc.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>libnfc is a library which allows userspace application access to NFC
devices.</td>
<td>LGPL v3</td>
<td>C</td>
</tr>
<tr class="even">
<td><a href="https://github.com/fuzxxl/nfc">Go NFC</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/fuzxxl/nfc.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>Go bindings for libnfc</td>
<td>LGPL v3</td>
<td>Go</td>
</tr>
<tr class="odd">
<td><a href="https://github.com/camme/node-nfc">Node NFC</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/camme/node-nfc.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>Node.js bindings for libnfc</td>
<td>MIT</td>
<td>Node.js</td>
</tr>
<tr class="even">
<td><a href="https://github.com/grundid/nfctools">Java NFC</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/grundid/nfctools.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>nfctools library for Java</td>
<td>ASL</td>
<td>Java</td>
</tr>
</tbody>
</table>
<h3 id="rs-232-serial">RS-232 / Serial</h3>
<table>
<colgroup>
<col style="width: 57%" />
<col style="width: 32%" />
<col style="width: 8%" />
<col style="width: 2%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Description</th>
<th>License</th>
<th>Language</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><a href="https://github.com/Fazecast/jSerialComm">Java Simple Serial
Connector</a> <br> <a href=""><img
src="https://img.shields.io/github/stars/Fazecast/jSerialComm.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>Platform-independent serial port access for Java</td>
<td>LGPL</td>
<td>Java</td>
</tr>
<tr class="even">
<td><a href="https://github.com/rxtx/rxtx">rxtx</a> <br> <a href=""><img
src="https://img.shields.io/github/stars/rxtx/rxtx.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>A Java cross platform wrapper library for the serial port</td>
<td>LGPL</td>
<td>Java/C</td>
</tr>
<tr class="odd">
<td><a href="http://openjdk.java.net/projects/dio/">OpenJDK
Device/IO</a></td>
<td>The Device I/O Project provides a Java-level API for accessing
generic device peripherals on embedded devices.</td>
<td>GPL w/ classpath exception</td>
<td>Java/C</td>
</tr>
</tbody>
</table>
<h3 id="rs-485">RS-485</h3>
<p>TBC</p>
<h3 id="zigbee">ZigBee</h3>
<p>TBC</p>
<h3 id="z-wave">Z-Wave</h3>
<p>TBC</p>
<h2 id="data-encoding">Data Encoding</h2>
<p>This section focuses on data encoding formats that are particularly
appropriate for IoT scenarios (i.e bandwidth or battery efficient, small
memory footprint, …)</p>
<h3 id="cbor">CBOR</h3>
<table>
<colgroup>
<col style="width: 57%" />
<col style="width: 36%" />
<col style="width: 3%" />
<col style="width: 3%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Description</th>
<th>License</th>
<th>Language</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><a href="https://github.com/01org/tinycbor">TinyCBOR</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/01org/tinycbor.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>TinyCBOR is Intels industrial strength C/C++ implementation of
CBOR, as used in the IoTivity framework.</td>
<td>MIT</td>
<td>C</td>
</tr>
</tbody>
</table>
<p>More at: http://cbor.io/impls.html</p>
<h3 id="flatbuffers">FlatBuffers</h3>
<table>
<colgroup>
<col style="width: 53%" />
<col style="width: 30%" />
<col style="width: 2%" />
<col style="width: 12%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Description</th>
<th>License</th>
<th>Language</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><a href="https://github.com/google/flatbuffers">Offical libraries
from Google</a> <br> <a href=""><img
src="https://img.shields.io/github/stars/google/flatbuffers.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>FlatBuffers is an efficient cross platform serialization library for
games and other memory constrained apps.</td>
<td>ASLv2</td>
<td>C++, C#, C, Go, Java, JavaScript, PHP, Python</td>
</tr>
</tbody>
</table>
<h3 id="protocol-buffers">Protocol Buffers</h3>
<table>
<colgroup>
<col style="width: 44%" />
<col style="width: 39%" />
<col style="width: 2%" />
<col style="width: 13%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Description</th>
<th>License</th>
<th>Language</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><a href="https://github.com/google/protobuf">Offical libraries from
Google</a> <br> <a href=""><img
src="https://img.shields.io/github/stars/google/protobuf.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>Protocol Buffers (a.k.a., protobuf) are Googles language-neutral,
platform-neutral, extensible mechanism for serializing structured
data.</td>
<td>BSD-3</td>
<td>C++, Java, Python, Objective-C, C#, JavaScript, Ruby, Go</td>
</tr>
<tr class="even">
<td><a href="https://github.com/nanopb/nanopb">nanopb</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/nanopb/nanopb.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>Nanopb is a small code-size Protocol Buffers implementation in ansi
C. It is especially suitable for use in microcontrollers, but fits any
memory restricted system.</td>
<td>BSD-3</td>
<td>C</td>
</tr>
<tr class="odd">
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<h2 id="data-visualization">Data Visualization</h2>
<p>See <a
href="https://github.com/fasouto/awesome-dataviz">awesome-dataviz</a>.</p>
<h2 id="data-storage">Data Storage</h2>
<table>
<colgroup>
<col style="width: 65%" />
<col style="width: 27%" />
<col style="width: 3%" />
<col style="width: 3%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Description</th>
<th>License</th>
<th>Language</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><a href="https://github.com/crate/crate">CrateDB</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/crate/crate.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>CrateDB is a distributed SQL database that makes it simple to store
and analyze massive amounts of machine data in real-time.</td>
<td>Apache 2.0</td>
<td>Java</td>
</tr>
</tbody>
</table>
<h2 id="device-discovery">Device Discovery</h2>
<h3 id="mdns-bonjour">mDNS / Bonjour</h3>
<table>
<colgroup>
<col style="width: 65%" />
<col style="width: 27%" />
<col style="width: 3%" />
<col style="width: 3%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Description</th>
<th>License</th>
<th>Language</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><a href="https://github.com/hashicorp/mdns">mdns</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/hashicorp/mdns.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>Simple mDNS client/server library in Golang</td>
<td>MIT</td>
<td>Go</td>
</tr>
<tr class="even">
<td><a href="https://github.com/oleksandr/bonjour">bonjour</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/oleksandr/bonjour.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>mDNS/DNS-SD (also known as Apple Bonjour) library for Go (in pure
Go)</td>
<td>MIT</td>
<td>Go</td>
</tr>
<tr class="odd">
<td><a href="http://agnat.github.io/node_mdns">node_mdns</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/agnat/node_mdns.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>mDNS/zeroconf/bonjour service discovery add-on for Node.js</td>
<td>MIT</td>
<td>Node.js</td>
</tr>
<tr class="even">
<td><a href="https://github.com/posicks/mdnsjava">mdnsjava</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/posicks/mdnsjava.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>Multicast DNS (mDNS) &amp; DNS-Based Service Discovery (DNS-SD) in
Java</td>
<td>BSD</td>
<td>Java</td>
</tr>
</tbody>
</table>
<h3 id="upnp">uPNP</h3>
<table>
<colgroup>
<col style="width: 73%" />
<col style="width: 16%" />
<col style="width: 6%" />
<col style="width: 4%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Description</th>
<th>License</th>
<th>Language</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><a href="https://github.com/huin/goupnp">goupnp</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/huin/goupnp.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>goupnp is a UPnP client library for Go</td>
<td>BSD-2</td>
<td>Go</td>
</tr>
<tr class="even">
<td><a href="https://github.com/oeuillot/upnpserver">UpnpServer</a> <br>
<a href=""><img
src="https://img.shields.io/github/stars/oeuillot/upnpserver.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>Fast and light upnp server for Node.js</td>
<td>GPLv2</td>
<td>Node.js</td>
</tr>
<tr class="odd">
<td><a href="http://4thline.org/projects/cling/">Cling</a></td>
<td>Java/Android UPnP library and tools</td>
<td>LGPL/CDDL-1.0</td>
<td>Java</td>
</tr>
</tbody>
</table>
<h2 id="gateway">Gateway</h2>
<table>
<colgroup>
<col style="width: 52%" />
<col style="width: 41%" />
<col style="width: 2%" />
<col style="width: 3%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Description</th>
<th>License</th>
<th>Language</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><a href="https://eclipse.org/kura">Eclipse Kura</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/eclipse/kura.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>Eclipse Kura is a Java/OSGi-based framework for IoT gateways</td>
<td></td>
<td>Java</td>
</tr>
<tr class="even">
<td><a href="https://openwrt.org/">OpenWrt</a></td>
<td>OpenWrt is an embedded operating system based on the Linux kernel,
primarily used on embedded devices to route network traffic</td>
<td>GPLv2</td>
<td>C, Lua</td>
</tr>
<tr class="odd">
<td><a href="http://ubos.net">UBOS</a> <br> <a href=""><img
src="https://img.shields.io/github/stars/uboslinux/ubos-admin.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>UBOS is an Arch-derived Linux distro optimized for cost-efficient
administration Personal Servers and Indie IoT Devices</td>
<td>Linux</td>
<td>many</td>
</tr>
</tbody>
</table>
<h2 id="home-automation">Home Automation</h2>
<table>
<colgroup>
<col style="width: 38%" />
<col style="width: 57%" />
<col style="width: 1%" />
<col style="width: 2%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Description</th>
<th>License</th>
<th>Language</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><a href="https://calaos.fr/en/">Calaos</a> <br> <a href=""><img
src="https://img.shields.io/github/stars/calaos/calaos_base.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>Calaos is a free software project (GPLv3) that lets you control and
monitor your home.</td>
<td>GPLv3</td>
<td>C++</td>
</tr>
<tr class="even">
<td><a href="http://www.freedomotic.com">Freedomotic</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/freedomotic/freedomotic.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>Freedomotic is an open source, flexible, secure Internet of Things
(IoT) development framework, useful to build and manage modern smart
spaces.</td>
<td>GPLv2</td>
<td>Java</td>
</tr>
<tr class="odd">
<td><a href="https://github.com/openhab/openhab">openHAB</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/openhab/openhab.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>The open Home Automation Bus (openHAB) project aims at providing a
universal integration platform for all things around home
automation</td>
<td>EPL</td>
<td>Java</td>
</tr>
<tr class="even">
<td><a href="http://eclipse.org/smarthome">Eclipse SmartHome</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/eclipse/smarthome.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>The Eclipse SmartHome project is a framework that allows building
smart home 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.</td>
<td>EPL</td>
<td>Java</td>
</tr>
<tr class="odd">
<td><a href="https://home-assistant.io">Home Assistant</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/home-assistant/home-assistant.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>Home Assistant is a home automation platform running on Python 3. It
is able to track and control all devices at home and offer a platform
for automating control.</td>
<td>Apache 2.0</td>
<td>Python 3</td>
</tr>
</tbody>
</table>
<h2 id="messaging">Messaging</h2>
<h3 id="coap">CoAP</h3>
<table>
<colgroup>
<col style="width: 60%" />
<col style="width: 31%" />
<col style="width: 3%" />
<col style="width: 4%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Description</th>
<th>License</th>
<th>Language</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><a href="http://www.eclipse.org/californium">Californium</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/eclipse/californium.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>Californium is a Java CoAP implementation for IoT Cloud
services.</td>
<td>EPL/EDL</td>
<td>Java</td>
</tr>
<tr class="even">
<td><a href="https://github.com/1248/microcoap">microcoap</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/1248/microcoap.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>A small CoAP implementation for microcontrollers</td>
<td>MIT</td>
<td>C (Arduino)</td>
</tr>
<tr class="odd">
<td><a href="https://github.com/dustin/go-coap">gocoap</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/dustin/go-coap.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>Implementation of CoAP in go</td>
<td>MIT</td>
<td>Go</td>
</tr>
<tr class="even">
<td><a href="https://github.com/mcollina/node-coap">node-coap</a> <br>
<a href=""><img
src="https://img.shields.io/github/stars/mcollina/node-coap.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>node-coap is a Node.js client and server library for CoAP modelled
after the http module.</td>
<td>MIT</td>
<td>Node.js</td>
</tr>
</tbody>
</table>
<h3 id="modbus">Modbus</h3>
<table>
<colgroup>
<col style="width: 51%" />
<col style="width: 42%" />
<col style="width: 2%" />
<col style="width: 2%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Description</th>
<th>License</th>
<th>Language</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><a href="https://github.com/goburrow/modbus">go modbus</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/goburrow/modbus.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>Fault-tolerant implementation of modbus protocol in Go</td>
<td>BSD-3</td>
<td>Go</td>
</tr>
<tr class="even">
<td><a href="https://github.com/steveohara/j2mod">j2mod</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/steveohara/j2mod.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>Enhanced Modbus library implemented in the Java programming
language</td>
<td>Apache</td>
<td>Java</td>
</tr>
<tr class="odd">
<td><a href="https://github.com/stephane/libmodbus">libmodbus</a> <br>
<a href=""><img
src="https://img.shields.io/github/stars/stephane/libmodbus.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>libmodbus is a free software library to send/receive data with a
device which respects the Modbus protocol. This library can use a serial
port or an Ethernet connection.</td>
<td>LGPL v2.1</td>
<td>C</td>
</tr>
<tr class="even">
<td><a
href="https://github.com/infiniteautomation/modbus4j">modbus4j</a> <br>
<a href=""><img
src="https://img.shields.io/github/stars/infiniteautomation/modbus4j.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>A high-performance and ease-of-use implementation of the Modbus
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.</td>
<td>GPL v3</td>
<td>Java</td>
</tr>
<tr class="odd">
<td><a
href="https://github.com/TooTallNate/node-modbus-stack">node-modbus-stack</a>
<br> <a href=""><img
src="https://img.shields.io/github/stars/TooTallNate/node-modbus-stack.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>A StreamStack implementation of the MODBUS protocol, for
NodeJS.</td>
<td>MIT</td>
<td>Node.js</td>
</tr>
<tr class="even">
<td><a href="https://github.com/bashwork/pymodbus">pymodbus</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/bashwork/pymodbus.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>A full modbus protocol written in Python</td>
<td>BSD</td>
<td>Python</td>
</tr>
</tbody>
</table>
<h3 id="mqtt">MQTT</h3>
<table>
<colgroup>
<col style="width: 49%" />
<col style="width: 30%" />
<col style="width: 2%" />
<col style="width: 17%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Description</th>
<th>License</th>
<th>Language</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><a href="http://www.eclipse.org/paho/">Eclipse Paho</a></td>
<td>The Eclipse Paho project provides open-source client implementations
of MQTT</td>
<td>EPL/EDL</td>
<td>Java, Python, Javascript, Go, C, .Net (C#), Embedded C/C++</td>
</tr>
<tr class="even">
<td><a href="https://mosquitto.org">Eclipse Mosquitto</a><br> <a
href=""><img
src="https://img.shields.io/github/stars/eclipse/mosquitto.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>Eclipse Mosquitto is an open source message broker that implements
the MQTT protocol versions 3.1 and 3.1.1. […] This makes it suitable for
“Internet of Things” messaging such as with low power sensors or mobile
devices such as phones, embedded computers or microcontrollers like the
Arduino.</td>
<td>EPL/EDL</td>
<td>C, Python</td>
</tr>
<tr class="odd">
<td><a href="https://github.com/andsel/moquette">Moquette</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/andsel/moquette.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>Moquette is a lightweight MQTT broker in Java</td>
<td>ASLv2</td>
<td>Java</td>
</tr>
<tr class="even">
<td><a href="https://github.com/mqttjs/MQTT.js">MQTT.js</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/mqttjs/MQTT.js.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>MQTT.js is a client library for the MQTT protocol, written in
JavaScript for node.js and the browser.</td>
<td>MIT</td>
<td>Javascript</td>
</tr>
<tr class="odd">
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<h3 id="mqtt-sn">MQTT-SN</h3>
<table>
<colgroup>
<col style="width: 62%" />
<col style="width: 30%" />
<col style="width: 3%" />
<col style="width: 3%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Description</th>
<th>License</th>
<th>Language</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><a href="https://github.com/njh/mqtt-sn-tools">mqtt-sn-tools</a>
<br> <a href=""><img
src="https://img.shields.io/github/stars/njh/mqtt-sn-tools.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>Command line tools written in C for the MQTT-SN (MQTT for Sensor
Networks) protocol.</td>
<td>MIT</td>
<td>C</td>
</tr>
</tbody>
</table>
<h3 id="opc-ua">OPC-UA</h3>
<table>
<colgroup>
<col style="width: 48%" />
<col style="width: 40%" />
<col style="width: 8%" />
<col style="width: 2%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Description</th>
<th>License</th>
<th>Language</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><a href="https://eclipse.org/milo">Eclipse Milo</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/eclipse/milo.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>Eclipse Milo provides all the tools necessary to implement OPC
Unified Architecture (UA) client and/or server functionality in any
JVM-based project.</td>
<td>EPL/EDL</td>
<td>Java</td>
</tr>
<tr class="even">
<td><a href="http://node-opcua.github.io/">node-opcua</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/node-opcua/node-opcua.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>An implementation of a OPC UA stack fully written in Javascript and
Node.js</td>
<td>MIT</td>
<td>Node.js</td>
</tr>
<tr class="odd">
<td><a href="http://opcfoundation.github.io/UA-.NET/">OPC UA .NET</a>
<br> <a href=""><img
src="https://img.shields.io/github/stars/OPCFoundation/UA-.NET.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>The official OPC Foundation OPC UA .NET Stack and sample
applications.</td>
<td>GPLv2</td>
<td>.Net</td>
</tr>
<tr class="even">
<td><a href="http://open62541.org/">open62541</a> <br> <a href=""><img
src="https://img.shields.io/github/stars/open62541/open62541.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>An open source and free C (C99) OPC UA stack licensed</td>
<td>MPLv2</td>
<td>C</td>
</tr>
</tbody>
</table>
<h2 id="operating-systems">Operating Systems</h2>
<table>
<colgroup>
<col style="width: 40%" />
<col style="width: 55%" />
<col style="width: 2%" />
<col style="width: 2%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Description</th>
<th>License</th>
<th>Language</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><a href="https://github.com/contiki-os/contiki">Contiki</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/contiki-os/contiki.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>Contiki is an open source operating system for the Internet of
Things. Contiki connects tiny low-cost, low-power microcontrollers to
the Internet.</td>
<td>BSD-3</td>
<td>C</td>
</tr>
<tr class="even">
<td><a href="http://www.freertos.org/">FreeRTOS</a></td>
<td>A cross-platform real-time operating system</td>
<td>GPL-like</td>
<td>C</td>
</tr>
<tr class="odd">
<td><a href="https://www.mbed.com/en/development/software/mbed-os/">mbed
OS</a></td>
<td>ARM® mbed™ OS is an open source embedded operating system designed
specifically for the “things” in the Internet of Things (IoT). It
includes all the features you need to develop a connected product based
on an ARM Cortex-M microcontroller</td>
<td>ASLv2</td>
<td>C/C++</td>
</tr>
<tr class="even">
<td><a href="https://openwrt.org/">OpenWrt</a></td>
<td>OpenWrt is an embedded operating system based on the Linux kernel,
primarily used on embedded devices to route network traffic</td>
<td>GPLv2</td>
<td>C, Lua</td>
</tr>
<tr class="odd">
<td><a href="https://github.com/RIOT-OS/RIOT">RIOT-OS</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/RIOT-OS/RIOT.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>RIOT OS is an operating system for Internet of Things (IoT) devices.
It is based on a microkernel and designed for energy efficiency,
hardware independent development and a high degree of modularity</td>
<td>LGPL</td>
<td>C</td>
</tr>
<tr class="even">
<td><a href="http://ubos.net">UBOS</a> <br> <a href=""><img
src="https://img.shields.io/github/stars/uboslinux/ubos-admin.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>UBOS is an Arch-derived Linux distro optimized for cost-efficient
administration Personal Servers and Indie IoT Devices</td>
<td>Linux</td>
<td>many</td>
</tr>
<tr class="odd">
<td><a href="https://www.zephyrproject.org/">Zephyr</a></td>
<td>Zephyr Project is a small, scalable real-time operating system for
use on resource-constrained systems supporting multiple
architectures.</td>
<td>ASLv2</td>
<td>C</td>
</tr>
</tbody>
</table>
<h2 id="remote-management">Remote Management</h2>
<p><em>Libraries that can be used to implement remote management of IoT
devices</em></p>
<h3 id="lwm2m">LWM2M</h3>
<table>
<colgroup>
<col style="width: 63%" />
<col style="width: 30%" />
<col style="width: 2%" />
<col style="width: 3%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Description</th>
<th>License</th>
<th>Language</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><a href="https://github.com/zubairhamed/betwixt">Betwixt</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/zubairhamed/betwixt.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>Betwixt is a LWM2M Client and Server in Go</td>
<td>ASL</td>
<td>Go</td>
</tr>
<tr class="even">
<td><a href="https://eclipse.org/leshan">Eclipse Leshan</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/eclipse/leshan.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>Eclipse Leshan is a LWM2M implementation in Java</td>
<td>EPL/EDL</td>
<td>Java</td>
</tr>
<tr class="odd">
<td><a
href="https://github.com/telefonicaid/lwm2m-node-lib">lwm2m-node-lib</a>
<br> <a href=""><img
src="https://img.shields.io/github/stars/telefonicaid/lwm2m-node-lib.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>lwm2m-node-lib is a library for building LWM2M applications (client
and server) in Javascript</td>
<td>AGPL</td>
<td>Node.js</td>
</tr>
<tr class="even">
<td><a href="https://eclipse.org/wakaama">Eclipse Wakaama</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/eclipse/wakaama.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>Eclipse Wakaama is a LWM2M implementation in C</td>
<td>EPL/EDL</td>
<td>C</td>
</tr>
<tr class="odd">
<td><a href="https://github.com/FlowM2M/AwaLWM2M">AwaLWM2M</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/flowm2m/awalwm2m.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>Awa LWM2M is an implementation of the OMA Lightweight M2M protocol
in C</td>
<td>BSD-3</td>
<td>C</td>
</tr>
</tbody>
</table>
<h3 id="oma-dm">OMA-DM</h3>
<table style="width:100%;">
<colgroup>
<col style="width: 68%" />
<col style="width: 24%" />
<col style="width: 3%" />
<col style="width: 3%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Description</th>
<th>License</th>
<th>Language</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><a href="https://github.com/01org/libdmclient">libdmclient</a> <br>
<a href=""><img
src="https://img.shields.io/github/stars/01org/libdmclient.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>libdmclient implements the client-side of OMA DM 1.2 protocol</td>
<td>ASL</td>
<td>C</td>
</tr>
</tbody>
</table>
<h3 id="snmp">SNMP</h3>
<table>
<colgroup>
<col style="width: 54%" />
<col style="width: 38%" />
<col style="width: 3%" />
<col style="width: 3%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Description</th>
<th>License</th>
<th>Language</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><a href="http://www.snmp4j.org/">SNMP4J</a></td>
<td>SNMP4J is an enterprise class free open source and state-of-the-art
SNMP implementation for Java™ SE 1.4 or later</td>
<td>ASL</td>
<td>Java</td>
</tr>
<tr class="even">
<td><a href="https://github.com/alouca/gosnmp">GoSNMP</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/alouca/gosnmp.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>A simple SNMP library written in Go</td>
<td>BSD</td>
<td>Go</td>
</tr>
</tbody>
</table>
<h3 id="tr-069">TR-069</h3>
<table>
<colgroup>
<col style="width: 68%" />
<col style="width: 23%" />
<col style="width: 3%" />
<col style="width: 4%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Description</th>
<th>License</th>
<th>Language</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><a href="https://github.com/netcwmp/netcwmp">netcwmp</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/netcwmp/netcwmp.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>A software client for enabling TR-069 in embedded devices</td>
<td>ASLv2</td>
<td>C</td>
</tr>
</tbody>
</table>
<h2 id="robotics-and-physical-computing">Robotics and Physical
computing</h2>
<table>
<colgroup>
<col style="width: 55%" />
<col style="width: 38%" />
<col style="width: 2%" />
<col style="width: 3%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Description</th>
<th>License</th>
<th>Language</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><a href="https://github.com/hybridgroup/artoo">Artoo</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/hybridgroup/artoo.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>Artoo is a micro-framework for robotics using Ruby.</td>
<td>ASLv2</td>
<td>Ruby</td>
</tr>
<tr class="even">
<td><a href="https://github.com/hybridgroup/cylon">Cylon.js</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/hybridgroup/cylon.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>Cylon.js is a JavaScript framework for robotics, physical computing,
and the Internet of Things.</td>
<td>ASLv2</td>
<td>Node.js</td>
</tr>
<tr class="odd">
<td><a href="https://github.com/hybridgroup/gobot">Gobot</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/hybridgroup/gobot.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>Gobot is a framework using the Go programming language for robotics,
physical computing, and the Internet of Things.</td>
<td>ASLv2</td>
<td>Go</td>
</tr>
</tbody>
</table>
<h2 id="security">Security</h2>
<h3 id="dns-sec">DNS-SEC</h3>
<table style="width:100%;">
<colgroup>
<col style="width: 61%" />
<col style="width: 31%" />
<col style="width: 2%" />
<col style="width: 3%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Description</th>
<th>License</th>
<th>Language</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><a href="https://github.com/alexdalitz/dnsruby">Dnsruby</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/alexdalitz/dnsruby.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>Dnsruby is a pure Ruby DNS client library which implements a stub
resolver and supports DNSSEC</td>
<td>ASLv2</td>
<td>Ruby</td>
</tr>
<tr class="even">
<td><a href="https://github.com/ibauersachs/dnssecjava">dnssecjava</a>
<br> <a href=""><img
src="https://img.shields.io/github/stars/ibauersachs/dnssecjava.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>A DNSSEC validating stub resolver for Java.</td>
<td>EPL</td>
<td>Java</td>
</tr>
</tbody>
</table>
<h3 id="dtls">DTLS</h3>
<table>
<colgroup>
<col style="width: 39%" />
<col style="width: 53%" />
<col style="width: 3%" />
<col style="width: 2%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Description</th>
<th>License</th>
<th>Language</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><a href="https://github.com/cfromknecht/dtls">DTLS Go</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/cfromknecht/dtls.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>DTLS 1.2 in Go</td>
<td>MIT</td>
<td>Go</td>
</tr>
<tr class="even">
<td><a href="http://www.eclipse.org/californium">Eclipse Scandium</a>
<br> <a href=""><img
src="https://img.shields.io/github/stars/eclipse/californium.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>The Scandium (Sc) sub-project within Californium implements DTLS 1.2
to secure your application through ECC with pre-shared keys,
certificates, or raw public keys.</td>
<td>EPL/EDL</td>
<td>Java</td>
</tr>
<tr class="odd">
<td><a href="http://www.eclipse.org/tinydtls">Eclipse TinyDTLS</a></td>
<td>tinydtls is a library for Datagram Transport Layer Security (DTLS)
covering both the client and the server state machine. tinydtls is a
library for Datagram Transport Layer Security (DTLS) covering both the
client and the server state machine.</td>
<td>EPL/EDL</td>
<td>C</td>
</tr>
<tr class="even">
<td><a href="https://tls.mbed.org/">mbed TLS</a></td>
<td>mbed TLS (previously PolarSSL) is an implementation of the TLS and
SSL protocols and the respective cryptographic algorithms and support
code required.</td>
<td>ASLv2</td>
<td>C</td>
</tr>
<tr class="odd">
<td><a href="https://www.openssl.org/">OpenSSL</a></td>
<td>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) protocols.</td>
<td>OpenSSL/SSLeay</td>
<td>C/Assembly</td>
</tr>
<tr class="even">
<td><a href="https://github.com/rbit/pydtls">PyDTLS</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/rbit/pydtls.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>Datagram Transport Layer Security for Python</td>
<td>ASLv2</td>
<td>Python</td>
</tr>
</tbody>
</table>
<h3 id="tls">TLS</h3>
<table>
<colgroup>
<col style="width: 14%" />
<col style="width: 73%" />
<col style="width: 6%" />
<col style="width: 4%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Description</th>
<th>License</th>
<th>Language</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><a href="https://tls.mbed.org/">mbed TLS</a></td>
<td>mbed TLS (previously PolarSSL) is an implementation of the TLS and
SSL protocols and the respective cryptographic algorithms and support
code required.</td>
<td>ASLv2</td>
<td>C</td>
</tr>
<tr class="even">
<td><a href="https://www.openssl.org/">OpenSSL</a></td>
<td>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) protocols.</td>
<td>OpenSSL/SSLeay</td>
<td>C/Assembly</td>
</tr>
</tbody>
</table>
<h2 id="workflow-management">Workflow management</h2>
<table style="width:100%;">
<colgroup>
<col style="width: 62%" />
<col style="width: 30%" />
<col style="width: 3%" />
<col style="width: 3%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Description</th>
<th>License</th>
<th>Language</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><a href="https://github.com/node-red/node-red">Node-RED</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/node-red/node-red.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>A visual tool for wiring the Internet of Things.</td>
<td>ASL</td>
<td>Node.js</td>
</tr>
<tr class="even">
<td><a href="https://github.com/cantino/huginn">huginn</a> <br> <a
href=""><img
src="https://img.shields.io/github/stars/cantino/huginn.svg?style=social&amp;label=Star&amp;maxAge=2592000"
alt="GitHub stars" /></a></td>
<td>Huginn is a system for building agents that perform automated tasks
for you online.</td>
<td>MIT</td>
<td>Ruby</td>
</tr>
<tr class="odd">
<td><a href="http://nebula.readthedocs.io">Nebula</a> <br></td>
<td>A docker orchestrator designed to manage IoT devices</td>
<td>GPL v3</td>
<td>Python</td>
</tr>
</tbody>
</table>
<h1 id="contributing">Contributing</h1>
<p>Contributions are very welcome! In order to be considered an Awesome
Open IoT project you need the following: * Valid <a
href="https://opensource.org/licenses/alphabetical">OSI approved
license</a>, * Proven record of regular commits, * Significant community
interest shown through GitHub stars, * Project is focused on solving
problems that are specific to IoT.</p>
<p>Please also have a look at <a
href="https://github.com/akullpp/awesome-java/blob/master/CONTRIBUTING.md">this
contributing guide</a> for some general guidelines.</p>