JavaScript could be an awful language (i.e. “typeof null returning ‘object’ is a bug that can’t be fixed, because it would break existing code”), but it is everywhere and is one programming language of IoT (other is Lua).
I decided to list here some small JavaScript options for embedded system:
Deno (https://deno.land/) – A small Javascript/TypeScript runtime written in Rust language.
Duktape (http://duktape.org/) – A small footprint, easily embeddable Ecmascript E5/E5.1 engine.
Espruino (http://www.espruino.com/) – A very small footprint interpreter specifically for microcontrollers. Can run in less than 8 kB of RAM by executing from source (rather than bytecode).
JerryScript (https://github.com/jerryscript-project/jerryscript) – A very small interpreter developed by Samsung for IoT application.
Kameleon (https://kameleon.io) – This is a fork of JerryScript with a nice web IDE.
Moddable (https://github.com/Moddable-OpenSource/moddable) – Another small and fast JavaScript VM for microcontrollers.
mJS (https://github.com/cesanta/mjs) – This is the JavaScript engine used on Mongoose project.
MuJS (https://mujs.com/) – A lightweight ECMAScript interpreter library, designed for embedding in other software to extend them with scripting capabilities. Originally developed for MuPDF.
QuickJS (https://bellard.org/quickjs/) – a small JS VM developed by Fabrice Bellard from QEMU fame.
SophonJS (https://github.com/gkmail/SophonJS) – Another JavaScript engine that could be used for low-end applications.
Throwback (https://github.com/getfilament/throwback) – The smallest JS engine for microcontroller, still in early stage of development
Tiny-JS (https://github.com/snoozbuster/tiny-js): A minimalJavaScript interpreter written in C++.
So, we have at least 12 JS engine options to use with microcontrollers. From this listing I think JerryScript is a step ahead, but Kameleon is evolving to be a real alternative for embedded systems.
Source: https://en.wikipedia.org/wiki/List_of_ECMAScript_engines
Thank you for compiling the list. In my case, my iot devices are generally too small to run JavaScript, But the list is good in case I up size.
Hi Celem,
Please take a look at Throwback, it is small and could fit in small microcontrollers.
Nice article . Thank you for this beautiful content, Keep it up. Techavera is the best
Embedded System Training in Noida.
Visit us For Quality Learning.Thank you