Samsung JerryScript is a Lightweight Open Source JavaScript Engine for the Internet of Things

In the old days, micro-controller programming was all done in assembly or C, but in recent years higher level languages, included interpreted ones such as Python and JavaScript, have made their ways into MCUs with projects such as MicroPython or Espruino (JS) often running on STMicro STM32 ARM Cortex M micro-controllers, but also other platforms such as ESP8266.

JerryScriptAs I browsed through the Embedded Linux Conference Europe 2016 schedule, I discovered that Samsung worked on it own implementation of a JavaScript engine for the Internet of Things: JerryScript. It is a full implementation of ECMAScript 5.1 standard written in C that can run on micro-controllers with less than 64KB RAM, and less than 200KB storage (160KB footprint with ARM Thumb-2 compilation).

JerryScript is comprised of two main components: Parser and Virtual Machine (VM), with the parser performing translation of input ECMAScript application into byte-code than is then executed by the Virtual Machine that performs interpretation.

 

JerryScript High Level Design
JerryScript High Level Design

Although JerryScript is designed for MCUs, and is said to be running on hundreds of thousands of smartwatches, you can easily build it and try in any machine running Linux:


You can also compile the code for full, compact or minimal implementation, use the C Api to integrate JavaScript support into your program, etc… Many more details can be found on JerryScript website and Github repository. JerryScript is also used in IoT.js framework for the Internet of Things that currently runs on Linux and NuttX RTOS platforms, as well as STM32F4-Discovery + “BB” (Beaglebone Black?) and Raspberry Pi 2, and will soon be ported to Samsung Artik 1 (MIPS), STM32F429-Discovery, STM32F411-Nucleo, and Intel Edison boards.

 

6
Leave a Reply

avatar
6 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
6 Comment authors
AkosTheKissJotaMGJMDeetszoobab Recent comment authors
  Subscribe  
newest oldest most voted
Notify of
TLS
Guest
TLS

64KB RAM… so it’ll still not run on most current low cost MCU’s then…

zoobab
Guest

I made a package of Jerryscript for openwrt a while ago, but at the end I dropped javascript for shell 🙂

Also, the paid Samsung team who is working on it makes it a pain to contribute patches.

Deets
Guest
Deets

Mediatek has also adopted it for microlattice.js

JM
Guest

Let me guess the lead dev is called Jerry?

JotaMG
Guest
JotaMG

JM :
Let me guess the lead dev is called Jerry?

Hope it’s not Seinfeld… 😉

AkosTheKiss
Guest
AkosTheKiss

@zoobab: Let’s be fair: https://github.com/Samsung/jerryscript/pulls?q=is%3Apr+author%3Azoobab+is%3Aclosed This was only one PR, which was answered the same day, but abandoned after issues were pointed out.

@JM: Nope 🙂