A JavaScript engine for embedded systems requiring as little as 10 kB of RAM, implementing a stricter ES5 subset.
MicroQuickJS is a JavaScript engine designed for embedded systems and resource-constrained devices. It compiles and runs JavaScript programs using extremely low memory—as little as 10 kB of RAM—while implementing a stricter, safer subset of ES5 JavaScript. It solves the problem of running JavaScript in environments where traditional engines like V8 or SpiderMonkey are too resource-intensive.
Embedded systems developers, IoT engineers, and anyone working on microcontrollers or low-memory devices who need to run JavaScript code efficiently and safely.
Developers choose MQuickJS for its ultra-low memory footprint, deterministic memory usage without relying on system malloc, and its stricter JavaScript subset that prevents common errors, making it ideal for reliable embedded applications.
Public repository of the Micro QuickJS Javascript Engine
Runs with as little as 10 kB of RAM and 100 kB of ROM, demonstrated by the --memory-limit option in the REPL, making it ideal for embedded systems.
Enforces a subset of ES5 that forbids error-prone constructs like array holes and direct eval, reducing bugs in resource-constrained code.
Uses a tracing compacting GC to minimize fragmentation and allow smaller object representations, as detailed in the Internals section.
Does not require standard malloc or printf, using a provided memory buffer instead, enhancing portability to bare-metal systems.
Only supports a strict ES5 subset with missing modern features like full ES6, advanced regexp, and Date functions beyond Date.now().
The C API requires careful handling with JS_PushGCRef and JS_PopGCRef, and objects can move during allocation, increasing development complexity.
Bytecode format is not guaranteed to be compatible across versions, as admitted in the README, requiring recompilation for updates.
Lacks the extensive libraries, debuggers, and community support of mainstream JavaScript engines, making development and troubleshooting harder.
ChakraCore is an open source Javascript engine with a C API.
Ultra-lightweight JavaScript engine for the Internet of Things.
Duktape - embeddable Javascript engine with a focus on portability and compact footprint
A small, fast, and embeddable programming language based on Lua with a gradual type system.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.