Flow-based programming runtime for microcontrollers
npm install microfloMicroFlo: Live dataflow programming for microcontrollers
========================================================

Unlike most other dataflow runtimes for constrained devices,
MicroFlo run _standalone_ on the microcontroller, can be introspected and reconfigured at runtime,
and has built-in support for automated testing.
One can program with MicroFlo either:
* Visually, using Flowhub
* Textually, using the declarative .fbp DSL
or .json definition
* Programatically, by embedding it and building a graph using the C++ API
MicroFlo is very portable, written in C++03 without exceptions and stdlib.
It comes with support for multiple platforms,including Arduino and Embedded Linux.
It has been used on many different devices,
from Atmel AVR8 to ARM Cortex M0/M1/M3/M4 devices (LPC mbed, TI Tiva/Stellaris), ESP8266 and Raspberry PI.
MicroFlo is designed to integrate with other data-driven programming tools, including
msgflo for easy building of distributed systems (IoT).
Using
-----------------
For visual programming your Arduino, follow the microflo-example-arduino.
Support
---------

MicroFlo is a part of Flowhub, a platform for building robust IoT systems and web services.
We offer an Integrated Development Environment and consulting services.
Status
-------
Minimally useful.
* Works fine for simple programs
* Components exists for standard I/O on Arduino devices
* Live programming supported for most changes
* Basic support for automated testing
MicroFlo in the wild:
* Jon's fridge thermostat
has been running uninterrupted since September 2013.
* The Ingress table at c-base station, Berlin uses MicroFlo
to control the lights. One major upgrade/bugfix since March 2014.
* The lights on the CNC-milled Christmas tree at Bitraf,
Oslo ran for 4 weeks during Christmas 2013.
Contact
----------
When you find issues: file bugs
and/or submit pull requests!
Changelog
-----------
Past milestones
License
-------
MicroFlo is released under the MIT license.
Note that the platform MicroFlo runs on (like Arduino), and MicroFlo components may be under other licenses!