Fabrice Bellard Releases MicroQuickJS

Fabrice Bellard Releases MicroQuickJS

December 24, 2025

### The JavaScript Engine Shrinks Again: Fabrice Bellard Unveils MicroQuickJS

Just when you thought JavaScript engines couldn’t get any smaller, Fabrice Bellard—the legendary programmer behind QEMU, FFmpeg, and the original QuickJS—has released a new, even more compact version of his creation: MicroQuickJS. This new engine is specifically designed to bring modern JavaScript to the most resource-constrained environments, namely microcontrollers (MCUs).

For years, developers working with tiny devices like the ESP32 or STM32 have relied on languages like C/C++, MicroPython, or Lua. While powerful, these options don’t tap into the massive ecosystem and developer familiarity of JavaScript. Projects like JerryScript and the original QuickJS made JS on microcontrollers possible, but Bellard’s new offering pushes the boundaries of what can be achieved in an astonishingly small footprint.

#### Just How Small Is “Micro”?

MicroQuickJS is a masterclass in optimization. It’s a carefully curated subset of the ES2023 specification that can run in as little as **44 KiB of RAM** and fits within a **190 KiB flash** executable.

To achieve this incredible size, some features had to be jettisoned. Bellard made pragmatic choices, removing parts of the JavaScript language that are either too memory-intensive or less relevant for embedded systems. Notable omissions include:

* Regular Expressions
* The `eval()` function
* The `with` statement
* Complex number-to-string and date formatting
* Many of the more obscure Annex B features (web-compatibility).

What remains, however, is a surprisingly capable and modern core. Developers still get access to Promises, `async`/`await`, classes, modules, and other essential ES6+ features, making for a productive development experience.

#### More Than a Subset: Built for Hardware

MicroQuickJS isn’t just a stripped-down version of its predecessor; it’s purpose-built for interacting with hardware. Bellard has included a standard library with APIs for common microcontroller peripherals, allowing for direct control over:

* **GPIO:** General-purpose input/output pins for reading sensors and controlling LEDs or motors.
* **I2C & SPI:** Serial communication protocols used to interface with a vast array of sensors, displays, and other chips.
* **Timers:** Essential for creating delays and scheduling tasks without blocking the main event loop.

This built-in hardware support means developers can write clean, high-level JavaScript to blink an LED or read a temperature sensor without needing to drop down to C or fiddle with complex low-level libraries.

#### The Impact on the Embedded World

The release of MicroQuickJS is significant. It lowers the barrier to entry for the millions of web and Node.js developers looking to experiment with IoT and hardware projects. The ability to use familiar `async`/`await` patterns for handling hardware events could dramatically simplify embedded application logic.

While it won’t replace C/C++ for performance-critical real-time tasks, MicroQuickJS carves out a compelling niche for high-level application logic, rapid prototyping, and creating interactive devices where development speed is paramount. Once again, Fabrice Bellard has delivered a tool that is not only a technical marvel but a practical enabler for a new wave of innovation.

Leave A Comment

Effective computer repair and coding solutions from right here in Võrumaa. Your project gets done fast, professionally,
and without any fuss.