is a toolkit for building IoT device applications in JavaScript and C++
C++ C Objective-C Makefile HTML Shell Other

An open-source toolkit for building embedded IoT applications that connect sensors, devices and cloud services. is a new open source software toolkit for quickly building embedded applications for the Internet of Things that run on Linux-based devices like the Raspberry Pi, Beaglebone or RED brick. implements a web-enabled, modular and extensible JavaScript and C++ runtime environment and provides readily available, easy to use building blocks that allow your application to talk to various sensors and devices, as well as cloud services. is based on the POCO C++ Libraries and uses the V8 JavaScript engine.

For more information, including documentation, please see the website.

Build Status

  • Travis: Travis Build Status


  • GNU Make
  • GNU C++ (g++) on Linux or Clang++ on OS X
  • OpenSSL headers and libraries (on OS X, via Homebrew: brew install openssl)
  • Python (for building V8)

Getting Started

For the impatient, using a Linux or OS X machine:

$ git clone
$ cd
$ git checkout master
$ make -s -j8 DEFAULT_TARGET=shared_release

Then, on Linux:

$ export LD_LIBRARY_PATH=`pwd`/platform/lib/Linux/x86_64
$ cd server
$ bin/Linux/x86_64/macchina

On OS X:

$ export DYLD_LIBRARY_PATH=`pwd`/platform/lib/Darwin/x86_64
$ cd server
$ bin/Darwin/x86_64/macchina

Then direct your favorite web browser to http://localhost:22080 and log in with username 'admin' and password 'admin'.

For more detailed instructions, including how to cross-compile for embedded Linux targets, as well as an introduction to writing JavaScript code for, see the documentation, specifically Introduction and Overview and Getting Started with

Project Status is still in development. The core platform code is done and considered stable (it's based on code having seen heavy production use for a few years already). Current work focuses on adding additional sensor, device and cloud service interfaces, as well as refining the existing interfaces.


We welcome contributions! Specifically we're looking for new sensor and device implementations, as well as additional protocols. Please see our CONTRIBUTING document to get started.