Fabrice Bellard, the founder of QEMU and FFmpeg, reveals a new project, Micro QuickJS, as a new JavaScript engine targeting embedded systems.
It’s important to note that Micro QuickJS is not a continuation or fork of QuickJS, another JS project by the same author. It is a separate codebase designed specifically for environments with very limited resources, such as microcontrollers and other constrained embedded platforms.
The engine focuses on a strict ES5 subset and prioritizes predictable behavior, low memory usage, and simplicity over broad language coverage. A key design goal is its minimal memory footprint. The engine is intended to operate in environments with only a few kilobytes of available RAM.
According to the project description, it can compile and run JavaScript programs with as little as 10 kB of RAM, placing it well below the footprint of conventional JavaScript engines and making it fitting for devices where scripting support has traditionally been impractical.
To achieve this, several features commonly found in larger runtimes are intentionally omitted, and the implementation avoids dynamic behavior that would increase memory pressure.
The standard library is designed to be compiled into ROM, reducing runtime allocations and enabling faster startup. This method corresponds with typical embedded system requirements, where code is stored in flash memory and RAM usage must be tightly controlled.
Moreover, the API and execution model are also simplified to favor determinism and ease of embedding within firmware projects written in C.
Micro QuickJS is published under an open-source license and publicly hosted on GitHub. While it does not aim to replace full-featured JavaScript engines, it provides a new option for running JavaScript logic on hardware platforms where such capability was previously impractical.
