Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. C/C++
  3. MicroQuickJS

MicroQuickJS

NOASSERTIONC

A JavaScript engine for embedded systems requiring as little as 10 kB of RAM, implementing a stricter ES5 subset.

GitHubGitHub
6.2k stars248 forks0 contributors

What is MicroQuickJS?

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.

Target Audience

Embedded systems developers, IoT engineers, and anyone working on microcontrollers or low-memory devices who need to run JavaScript code efficiently and safely.

Value Proposition

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.

Overview

Public repository of the Micro QuickJS Javascript Engine

Use Cases

Best For

  • Running JavaScript on microcontrollers with limited RAM
  • Embedded systems requiring deterministic memory allocation
  • IoT devices where a full JavaScript engine is too heavy
  • Educational projects exploring minimal JS engines
  • Applications needing JavaScript bytecode execution from ROM
  • Environments where a stricter, safer JS subset is preferred

Not Ideal For

  • Web applications requiring full ES2020+ support and npm ecosystem integration
  • Projects that rely on direct eval for dynamic code execution or metaprogramming
  • Environments where memory is abundant and maximum JavaScript performance is the top priority
  • Development teams looking for a plug-and-play JavaScript engine with extensive documentation and community support

Pros & Cons

Pros

Ultra-Low Memory Footprint

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.

Stricter JavaScript Safety

Enforces a subset of ES5 that forbids error-prone constructs like array holes and direct eval, reducing bugs in resource-constrained code.

Efficient Garbage Collection

Uses a tracing compacting GC to minimize fragmentation and allow smaller object representations, as detailed in the Internals section.

Minimal C Dependencies

Does not require standard malloc or printf, using a provided memory buffer instead, enhancing portability to bare-metal systems.

Cons

Limited JavaScript Features

Only supports a strict ES5 subset with missing modern features like full ES6, advanced regexp, and Date functions beyond Date.now().

Complex Memory Management

The C API requires careful handling with JS_PushGCRef and JS_PopGCRef, and objects can move during allocation, increasing development complexity.

No Bytecode Backwards Compatibility

Bytecode format is not guaranteed to be compatible across versions, as admitted in the README, requiring recompilation for updates.

Sparse Tooling and Ecosystem

Lacks the extensive libraries, debuggers, and community support of mainstream JavaScript engines, making development and troubleshooting harder.

Frequently Asked Questions

Quick Stats

Stars6,216
Forks248
Contributors0
Open Issues4
Last commit27 days ago
CreatedSince 2025

Tags

#iot#embedded-systems#javascript-engine#low-memory#c-api#microcontroller#es5#bytecode#garbage-collection

Built With

C
C++

Included in

C/C++70.6k
Auto-fetched 1 day ago

Related Projects

pybind11pybind11

Seamless operability between C++11 and Python

Stars18,030
Forks2,328
Last commit4 days ago
cythoncython

The most widely used Python to C compiler

Stars10,874
Forks1,646
Last commit4 days ago
ChakraCoreChakraCore

ChakraCore is an open source Javascript engine with a C API.

Stars9,259
Forks1,219
Last commit8 months ago
JerryScriptJerryScript

Ultra-lightweight JavaScript engine for the Internet of Things.

Stars7,419
Forks694
Last commit1 year ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub