Generated by DeepSeek V3.2| JerryScript | |
|---|---|
| Name | JerryScript |
| Developer | Samsung Electronics |
| Released | June 2015 |
| Operating system | Embedded, RTOS |
| Genre | JavaScript engine |
| License | Apache License 2.0 |
JerryScript. It is a lightweight JavaScript engine designed for use on highly constrained devices such as microcontrollers, where memory and processing power are severely limited. Originally developed by Samsung Electronics, the engine is open-source and distributed under the permissive Apache License 2.0. Its primary goal is to enable IoT devices to execute scripts written in the widely-used ECMAScript language, bringing programmability to the embedded world.
The engine is intended to run on devices with less than 64 KB of RAM and under 200 KB of ROM, making it suitable for the most resource-constrained embedded system environments. It implements the ECMAScript 5.1 specification, providing a standards-compliant foundation for scripting. By offering a full JavaScript interpreter rather than a subset, it allows developers to use familiar web development paradigms and tools on hardware traditionally programmed in lower-level languages like C or C++.
The architecture is designed for minimal memory footprint and portability. Its core is written in ANSI C99, ensuring compatibility with a vast array of compilers and RTOS platforms. The engine employs a compact bytecode interpreter, avoiding the memory overhead of a JIT compiler. Key components include a memory manager optimized for small heaps, a parser that builds a concise abstract syntax tree, and a virtual machine that executes the generated bytecode. This modular design allows it to be easily integrated into projects targeting platforms like ARM Cortex-M series cores.
Notable features include support for ECMAScript 5.1 standard library objects, debugger protocols for remote inspection, and a foreign function interface to interact with native C code. It provides a garbage collection mechanism tailored for low-memory environments. The engine also supports snapshot execution, where pre-compiled bytecode can be stored in ROM to reduce startup time and memory usage. These features make it a practical tool for adding scripting capabilities to products built with FreeRTOS, Zephyr, or Linux-based embedded Linux systems.
The project was initiated and open-sourced by Samsung Electronics in June 2015, emerging from the company's research into IoT software platforms. Development has been carried out as a collaborative open-source project, with contributions from the global embedded systems community. The source code is hosted on GitHub and managed using the Git version control system. Major milestones have included achieving full ECMAScript 5.1 compliance, adding debugger support compatible with tools like JerryScript Debugger, and ongoing optimizations for reduced CPU and memory consumption.
Its primary application is in the IoT sector, where it enables scriptable logic on sensors, actuators, and smart devices. It is used in products from Samsung Electronics, such as certain smart TV platforms and wearable devices. Developers also utilize it in DIY electronics projects on popular microcontroller boards like the ESP32 and STM32. Furthermore, it serves as an educational tool for teaching JavaScript programming in hardware-centric contexts, bridging the gap between web technology and embedded systems engineering.
Category:JavaScript engines Category:Embedded systems Category:Free software programmed in C Category:Samsung software