• 2019-07-09:
    • First public release


QuickJS is a small and embeddable Javascript engine. It supports the
ES2019 specification
including modules, asynchronous generators and proxies.

It optionally supports mathematical extensions such as big integers
(BigInt), big floating point numbers (BigFloat) and operator

Main Features:

  • Small and easily embeddable: just a few C files, no external
    dependency, 190 KiB of x86 code for a simple hello world
  • Fast interpreter with very low startup time: runs the 56000 tests
    of the ECMAScript Test
    in about 100 seconds on a single core of a desktop PC. The
    complete life cycle of a runtime instance completes in less than 300
  • Almost
    complete ES2019
    support including modules, asynchronous generators and full Annex B
    support (legacy web compatibility).
  • Passes 100% of the ECMAScript Test Suite.
  • Can compile Javascript sources to executables with no external dependency.
  • Garbage collection using reference counting (to reduce memory usage
    and have deterministic behavior) with cycle removal.
  • Mathematical extensions: BigInt, BigFloat, operator overloading, bigint mode, math mode.
  • Command line interpreter with contextual colorization implemented in Javascript.
  • Small built-in standard library with C library wrappers.


Online Demo

An online demonstration of the QuickJS engine with its mathematical
extensions is available
at It was compiled from
C to WASM/asm.js with Emscripten.


QuickJS documentation: HTML version,
PDF version.

Specification of the JS Bignum Extensions: HTML
, PDF version.


QuickJS source code: quickjs-2019-07-09.tar.xz

QuickJS complete tests: quickjs-tests-2019-07-09.tar.xz

QuickJS unicode data (not needed unless you want to rebuild the
tables): quickjs-unicode-data-2019-07-09.tar.xz


QuickJS embeds the following C libraries which can be used in other

  • libregexp: small and fast regexp library fully compliant with the Javascript ES 2019 specification.
  • libunicode: small unicode library supporting case
    conversion, unicode normalization, unicode script queries, unicode
    general category queries and all unicode binary properties.
  • libbf: small library implementing arbitrary precision
    IEEE 754 floating point operations and transcendental functions with
    exact rounding. It is maintained as a separate project.


QuickJS is released under
the MIT license.

Unless otherwise specified, the QuickJS sources are copyright Fabrice
Bellard and Charlie Gordon.

Fabrice Bellard –

Read More


Please enter your comment!
Please enter your name here