Skip to main content
QuickJS-ng supports a wide range of operating systems and platforms. The following table lists all supported platforms with their version requirements and testing status.

Platform Support Matrix

SystemSupported VersionsNotes
GNU/LinuxAll versionsglibc and musl are supported
macOSmacOS >= 11Currently supported macOS releases
Windows>= Windows 7*VS >= 2022 and Clang are supported; requires <stdatomic.h>
FreeBSDAll versionsLimited testing
OpenBSDAll versionsLimited testing
NetBSDAll versionsLimited testing
AndroidNDK >= 26.0.10792818Limited testing
iOSAll versionsLimited testing
tvOSAll versionsLimited testing
watchOSAll versionsLimited testing
MinGWMinGW-w64Full support
WASIWebAssembly System InterfaceSupported with emulated process clocks and signals
EmscriptenLatestWebAssembly compilation supported
SunOSAll versionsSome compiler flags may differ
*Windows 7 is EOL and only supported in this project as long as it doesn’t interfere with its progress.

Compiler Support

GCC

  • Version 11 or later recommended
  • C11 standard with GNU extensions
  • On macOS with GCC 11+, -Wno-maybe-uninitialized flag is required

Clang

  • Fully supported on all platforms
  • Recommended for Windows builds

MSVC

  • Visual Studio 2022 or later
  • Requires /experimental:c11atomics flag
  • C11 atomics support required

MinGW

  • MinGW-w64 toolchain
  • Full C11 support required

Platform-Specific Notes

Windows

  • Requires Visual Studio 2022 or later
  • C11 atomics support required (<stdatomic.h>)
  • Default stack size set to 8MB (vs 1MB default)
  • Use /experimental:c11atomics compiler flag

WASI (WebAssembly System Interface)

if(CMAKE_SYSTEM_NAME STREQUAL "WASI")
    add_compile_definitions(
        _WASI_EMULATED_PROCESS_CLOCKS
        _WASI_EMULATED_SIGNAL
    )
    add_link_options(
        -lwasi-emulated-process-clocks
        -lwasi-emulated-signal
    )
endif()
WASI builds require emulated process clocks and signal support.

Emscripten

QuickJS-ng can be compiled to WebAssembly using Emscripten:
emcmake cmake -B build
cmake --build build
The Emscripten build produces a WebAssembly module with:
  • 2MB stack size (instead of default 16KB)
  • ES6 module export
  • Exported runtime methods: ccall, cwrap

Mobile Platforms

iOS / tvOS / watchOS

  • Limited testing
  • No CLI tools installed on these platforms
  • Library-only builds
  • Platform-specific preprocessor definitions (_TVOS, _WATCHOS)

Android

  • NDK version 26.0.10792818 or later required
  • Limited testing
  • Full library and CLI support

Adding New Platforms

If you’ve successfully built QuickJS-ng on a platform not listed here, please open a pull request to add it to the documentation!

Unsupported Features by Platform

FeatureLimited Platforms
CLI tools (qjs, qjsc)Not installed on iOS, tvOS, watchOS
Thread supportNot available on WASI
Dynamic linkingWindows requires explicit symbol linking

Build docs developers (and LLMs) love