News
- 2025-09-13:
- New release (Changelog)
- 2025-04-26:
- New release (Changelog). 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:
Introduction
QuickJS is a small and embeddable Javascript engine. It supports the ES2023 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 world program.
- 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 (see test262.fyi).
- 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.Benchmarks
Documentation
QuickJS documentation: HTML version, PDF version.Download
- QuickJS source code: quickjs-2025-09-13-2.tar.xz
- QuickJS extras (contain the unicode files needed to rebuild the unicode tables and the bench-v8 benchmark): quickjs-extras-2025-09-13.tar.xz
- Official GitHub repository.
- Binary releases are available here.
- Cosmopolitan binaries running on Linux, Mac, Windows, FreeBSD, OpenBSD, NetBSD for both the ARM64 and x86_64 architectures: quickjs-cosmo-2025-09-13.zip.
- Typescript compiler compiled with QuickJS: quickjs-typescript-5.9.3-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.
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/