1458 lines
43 KiB
HTML
1458 lines
43 KiB
HTML
<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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&maxAge=2592000"
|
||
alt="GitHub stars" /></a></td>
|
||
<td>TinyCBOR is Intel’s 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&label=Star&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&label=Star&maxAge=2592000"
|
||
alt="GitHub stars" /></a></td>
|
||
<td>Protocol Buffers (a.k.a., protobuf) are Google’s 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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&maxAge=2592000"
|
||
alt="GitHub stars" /></a></td>
|
||
<td>Multicast DNS (mDNS) & 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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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&label=Star&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>
|