An ultra-lightweight JavaScript engine designed to run on microcontrollers and IoT devices with less than 64KB RAM.
JerryScript is an ultra-lightweight JavaScript engine designed specifically for Internet of Things (IoT) devices and microcontrollers. It solves the problem of running JavaScript on extremely resource-constrained hardware with less than 64KB of RAM and 200KB of flash memory. The engine brings web development capabilities to embedded systems while maintaining ECMAScript compatibility.
Embedded systems developers, IoT engineers, and hardware programmers who want to use JavaScript on microcontrollers and resource-constrained devices.
Developers choose JerryScript because it's the most memory-efficient JavaScript engine available for IoT devices, offering full ES5.1 compliance in a footprint small enough for microcontrollers. Its mature C API makes it easy to embed in existing C/C++ applications.
Ultra-lightweight JavaScript engine for the Internet of Things.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides complete support for the ECMAScript 5.1 standard, ensuring broad JavaScript compatibility on resource-constrained devices without sacrificing core language features.
Optimized to run on devices with less than 64KB RAM and 200KB flash, with binary sizes as small as 258KB for ARM Thumb-2, making it ideal for microcontrollers.
Written in C99, it can be easily ported across various microcontroller platforms and embedded systems, maximizing cross-platform compatibility.
Allows precompiling JavaScript source to bytecode for faster loading and reduced runtime memory usage, as highlighted in the key features.
Only 70% compliant with ECMAScript 2025, missing key modern syntax and APIs like async/await or ES6 modules, which restricts development with newer JavaScript standards.
Focused on IoT, it lacks the extensive library and tooling support of mainstream JavaScript environments, making integration with npm packages or modern frameworks challenging.
Integrating with C/C++ applications requires familiarity with embedded development and the C API, which can be steep for developers accustomed to web or Node.js environments.