MQuickJS is a JavaScript engine targeted at embedded systems that compiles and runs JavaScript programs using minimal memory footprint.
The engine addresses the challenge of running JavaScript on resource-constrained devices by implementing a tracing garbage collector, avoiding CPU stack usage, and storing strings in UTF-8 format. While sharing code ancestry with QuickJS, its internals differ significantly to reduce memory consumption. The tool operates in a stricter mode that enforces ES5-compatible JavaScript while disallowing error-prone constructs like the `with` keyword, array holes, and value boxing. Programs can be compiled to bytecode for persistent storage and later execution, with options to generate 32-bit bytecode on 64-bit systems for cross-platform deployment.
Developers should choose this tool when targeting embedded systems or other environments where RAM is severely limited, typically requiring only 10 kB of RAM for execution and around 100 kB of ROM for the complete engine including the C library. The stricter mode subset of JavaScript means code written for MQuickJS remains valid in standard JavaScript engines, making it suitable for projects that need portability across embedded and general-purpose platforms. The speed is comparable to QuickJS despite the memory optimizations.
The project maintains active development with regular commits addressing bug fixes and feature improvements. The codebase shows consistent refinement of the bytecode compiler and runtime behavior. Documentation is kept current with examples demonstrating practical usage patterns for both interactive execution and bytecode compilation workflows.