QuickJS Javascript Engine (original) (raw)
News
- 2025-04-26:
- New release (). The bignum extensions and the qjscalc application were removed to simplify the code. The BFCalc calculator (web version) can be used as a replacement for qjscalc.
- 2024-01-13:
- New release ()
- 2023-12-09:
- New release ()
Introduction
QuickJS is a small and embeddable Javascript engine. It supports theES2023 specification including modules, asynchronous generators, proxies and BigInt.
Main Features:
- Small and easily embeddable: just a few C files, no external dependency, 367 KiB of x86 code for a simple hello worldprogram.
- Fast interpreter with very low startup time: runs the 78000 tests of the ECMAScript Test Suite in about 2 minutes on a single core of a desktop PC. The complete life cycle of a runtime instance completes in less than 300 microseconds.
- Almost complete ES2023 support including modules, asynchronous generators and full Annex B support (legacy web compatibility).
- Passes nearly 100% of the ECMAScript Test Suite tests when selecting the ES2023 features (warning: the report available at test262.fyi underestimates the QuickJS results because it does not use the right executable).
- 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.
- Command line interpreter with contextual colorization implemented in Javascript.
- Small built-in standard library with C library wrappers.
Online Demo
qjs can be run in JSLinux.
Documentation
QuickJS documentation: HTML version, PDF version.
Download
- QuickJS source code: <quickjs-2025-04-26.tar.xz>
- QuickJS extras (contain the unicode files needed to rebuild the unicode tables and the bench-v8 benchmark): <quickjs-extras-2025-04-26.tar.xz>
- Official GitHub mirror.
- Binary releases are available in jsvu, esvu and here.
- Cosmopolitan binaries running on Linux, Mac, Windows, FreeBSD, OpenBSD, NetBSD for both the ARM64 and x86_64 architectures: quickjs-cosmo-2025-04-26.zip.
- Typescript compiler compiled with QuickJS: <quickjs-typescript-4.0.0-linux-x86.tar.xz>
- Babel compiler compiled with QuickJS: <quickjs-babel-linux-x86.tar.xz>
Sub-projects
QuickJS embeds the following C libraries which can be used in other projects:
- libregexp: small and fast regexp library fully compliant with the Javascript ES2023 specification.
- libunicode: small unicode library supporting case conversion, unicode normalization, unicode script queries, unicode general category queries and all unicode binary properties.
- dtoa: small library implementing float64 printing and parsing.
Links
- QuickJS Development mailing list
Licensing
QuickJS is released under the MIT license.
Unless otherwise specified, the QuickJS sources are copyright Fabrice Bellard and Charlie Gordon.
Fabrice Bellard - https://bellard.org/