Skip to content

ivankra/javascript-zoo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JavaScript engines zoo

  • docker: Dockerfiles to build open-source engines. Play around with pre-built binaries:
    • docker run -it ivankra/javascript-zoo
    • podman run -it docker.io/ivankra/javascript-zoo
    • container run -it docker.io/ivankra/javascript-zoo
  • engines: notes on each JavaScript engine. Structured data: engines.json.
  • parsers: notes on JavaScript parsers.
  • bench: benchmarking on V8's old test suite. Results.
  • conformance: conformance testing. Results.

List of JavaScript engines

Engine Language Description Standard Years LOC License
V8
StarsLast commit
C++ JavaScript engine of Chrome, Node.js etc. ESnext 2008- 1.3M BSD-3
SpiderMonkey
StarsLast commit
C++ JavaScript engine of Firefox. ESnext 1996- 1.0M MPL-2.0
JavaScriptCore
StarsLast commit
C++ JavaScript engine of Safari/WebKit. ESnext 2001- 770K LGPL-2.0
LibJS
StarsLast commit
C++ JavaScript engine of Ladybird browser and SerenityOS. ESnext 2020- 73K BSD-2
Hermes
StarsLast commit
C++ JavaScript engine from Facebook optimized for running React Native mobile apps. ES2023 2019- 170K MIT
QuickJS
StarsLast commit
C Lightweight embeddable JavaScript engine by Fabrice Bellard and Charlie Gordon. ES2023 2019- 74K MIT
ChakraCore
StarsLast commit
C++ JavaScript engine of Microsoft Edge Legacy. ES2019 2015-2021 780K MIT
JerryScript
StarsLast commit
C Lightweight JavaScript engine for microcontrollers. ES2022 2014-2024 109K Apache-2.0
Duktape
StarsLast commit
C Embeddable Javascript engine with a focus on portability and compact footprint. ES5 2013- 73K MIT
QuickJS-NG
StarsLast commit
C Community-oriented fork of QuickJS. ES2023 2023- 74K MIT
njs
StarsLast commit
C Lightweight embeddable JavaScript engine for use in nginx. ES6 2015- 59K BSD-2
cesanta/v7
StarsLast commit
C JavaScript engine for microcontrollers. ES5 2013-2017 25K GPL-2.0
XS
StarsLast commit
C Lightweight engine for microcontrollers/IoT by Kinoma/Marvell. ESnext 2002- 89K Apache/LGPL
PrimJS
StarsLast commit
C++ QuickJS-based engine from ByteDance for their cross-platform mobile apps framework Lynx. ES2019 2024- 292K Apache-2.0
MuJS
StarsLast commit
C Embeddable JavaScript engine from MuPDF. ES5 2013- 18K ISC
42tiny-js
StarsLast commit
C++ Fork of tiny-js with more features. no 2010-2014 9.2K MIT
tiny-js
StarsLast commit
C++ Primitive interpreter for a limited subset of JavaScript. no 2009-2012 2.4K MIT
iv / lv5
StarsLast commit
C++ JIT-enabled ES5 engine in C++. ES5 2009-2015 70K BSD-2
Mocha
StarsLast commit
C++ The very first JavaScript engine that defined early JavaScript language (JS1.0/1.1), shipped in Netscape Navigator 2.0-3.0. JS1.1 1995-1996 14K Proprietary
Escargot
StarsLast commit
C++ Lightweight JavaScript engine by Samsung for mid-range devices like phones/TVs. ESnext 2016- 116K LGPL-2.1
QV4 / QJSEngine
StarsLast commit
C++ JavaScript engine of Qt's QML framework (QJSEngine). ES2016 2012- 50K Qt/GPL/LGPL
Tamarin
StarsLast commit
C++ JavaScript engine of Adobe Flash Player 9+. ES4 2006-2013 193K MPL-2.0
yrm006/miniscript
StarsLast commit
C Primitive unfinished interpreter. no 2018 2.0K Missing
Flathead
StarsLast commit
C Buggy unfinished interpreter. no 2012-2017 7.1K MIT
QuickJIT
StarsLast commit
C QuickJS fork that JIT-translates bytecode using TCC. ES2019 2023 87K MIT/LGPL-2.1+
jsish
StarsLast commit
C Buggy unfinished interpreter. no 2020-2022 51K MIT
KJS
StarsLast commit
C++ Original JavaScript engine of KDE's Konqueror browser. ES5 1998-2023 42K LGPL-2.1
Epimetheus
StarsLast commit
C++ Netscape's experimental "JavaScript 2.0" implementation towards ES4 proposal. ES4 2000-2006 42K MPL/GPL/LGPL
SophonJS
StarsLast commit
C Small footprint embedded ES5 engine. ES5 2015 23K BSD-3
malbrain
StarsLast commit
C JavaScript interpreter with a built-in NO-SQL database. 2016-2020 12K Missing
quad-wheel
StarsLast commit
C Buggy unfinished interpreter. no 2010 7.9K MIT
AWeb
StarsLast commit
C JavaScript engine of AWeb, a web browser for Amiga. ES3 2002-2007 23K Custom
stackluca/v3
StarsLast commit
C Toy JavaScript interpreter. 2016 4.3K MIT
Quanta
StarsLast commit
C++ Buggy unfinished interpreter. no 2025- 42K MPL-2.0
Voyager
StarsLast commit
C Web browser for Amiga with own JavaScript implementation. ES3 199x-2002 12K GPL-3.0
DscriptCPP
StarsLast commit
C++ DMDScript version implemented in C++. ES3 2000 44K BSL-1.0
ixlib
StarsLast commit
C++ C++ utility library with a rudimentary JavaScript interpreter. 2005 3.8K LGPL-2.0
CRIScript
StarsLast commit
C++ Lightweight ES3 interpreter for game engines. ES3 2008 37K Custom
NGS
StarsLast commit
C An independent implementation of JavaScript from late 1990s. JS1.4 1998-1999 36K LGPL-2.0
QSA
StarsLast commit
C++ Qt 3's JavaScript engine: Qt Script for Applications. ES4 2002-2007 GPL-2.0
Ejscript
StarsLast commit
C Embeddable JavaScript engine. ES4 2003-2014 107K GPL-2.0
Carakan
(archive.org)
C++ JavaScript engine of Opera 10.50 – 12.18. ES5 2010-2013 125K Proprietary
ChowJS
(mp2.dk)
C QuickJS-based optimizing AOT compiler to native code for game developers. ES2020 2021 Proprietary
Edbrowse
(edbrowse.org)
C Edbrowse CLI browser had own small JavaScript engine until v2.2.10 (2006). 2004-2006 2.3K GPL
JScript
(microsoft.com)
C++ JavaScript engine of Internet Explorer 3.0 – 8.0. ES3 1996-2011 Proprietary
JScript9 / Chakra C++ JavaScript engine of Internet Explorer 9.0 – 11.0. ES6 2009-2013 Proprietary
Links
(twibright.com)
C Links browser had a basic JavaScript engine until version 2.1pre28. ES3 2002-2007 14K GPL-2.0+
Opera
(opera.com)
C++ Early JavaScript engines of Opera browser: Linear A, Linear B, Futhark. ES3 1997-2009 Proprietary
QtScript
(qt.io)
C++ Qt 4.3-5.x's JavaScript engine based on JavaScriptCore. 2007-2023 GPL/LGPL
ScriptEase
(brent‑noorda.com)
C Scripting engine of Nombas ScriptEase, most famous for being used by James Webb Space Telescope. ES3 199x-2004 Proprietary
SEE
(archive.org)
C Simple ECMAScript Engine. ES3, JS1.5 2003-2009 34K BSD-3
Jint
StarsLast commit
C# JavaScript interpreter for .NET. ESnext 2013- 53K BSD-2
Jurassic
StarsLast commit
C# JavaScript engine for .NET, a compiler to .NET IL. ES5, ES6 2010- 35K MIT
IronJS
StarsLast commit
C# ES3 implementation for .NET, built on top of .NET DLR (Dynamic Language Runtime). ES3 2010-2013 13K Apache-2.0
NiL.JS
StarsLast commit
C# JavaScript interpreter for .NET. ES6 2013- 42K BSD-3
Topaz
StarsLast commit
C# Multithreaded JavaScript engine for .NET. ES6 2021- 22K MIT
Yantra
StarsLast commit
C# JavaScript engine for .NET. Tree walking interpreter + expression compiler to .NET IL. ES6 2020- 55K Apache-2.0
MuscalietJS
StarsLast commit
C# JavaScript interpreter / compiler to CIL. Abandoned prototype for a paper. 2014 50K BSD-3
JANET
(archive.org)
C# JavaScript implementation for .NET by Steve Newman (of Writely). JS1.4 2001 GPL
JScript .NET
(microsoft.com)
C# Old Microsoft's JavaScript engine for .NET Framework 1.0-4.x from early 2000s / ES4 era. ES4 2000-2010 Proprietary
Higgs
StarsLast commit
D JIT compiler for JavaScript targetting x86-64 platforms. ES5 2012-2015 40K BSD-3
DMDScript
StarsLast commit
D ECMAScript implementation by Digital Mars written in D. ES3 2002- 18K BSL-1.0
otto
StarsLast commit
Go JavaScript engine in pure Go. ES5 2012- 26K MIT
goja
StarsLast commit
Go JavaScript engine in pure Go. Fully ES5 compliant, partially ES6+. ES2023 2016- 46K MIT
Hako
StarsLast commit
Go Embeddable WebAssembly-sandboxed PrimJS fork. ES2019 2025- 18K Apache-2.0
fastschema/qjs
StarsLast commit
Go JavaScript in Go with QuickJS and Wazero. ES2023 2025- 14K MIT
Sobek
StarsLast commit
Go Grafana's fork of goja engine. ES2023 2024- 47K MIT
ModerncQuickJS
StarsLast commit
Go QuickJS transpiled to pure Go. ES2023 2024- 167K BSD-3/MIT
hjs
(haskell.org)
Haskell Haskell JavaScript parser and interpreter. ES3, JS1.5 2007 2.2K BSD-3
Rhino
StarsLast commit
Java JavaScript engine from Mozilla for the Java platform, bundled with JDK 6-7. ES2023 1997- 84K MPL-2.0
GraalJS
StarsLast commit
Java High-performance JavaScript engine for JVM/GraalVM. ESnext 2018- 192K GFTC/UPL-1.0
Nashorn
StarsLast commit
Java JavaScript engine of JDK 8-14 (2014-2020), based on invokedynamic JVM opcode. ES6 2011- 89K GPL-2.0
topchetoeu
StarsLast commit
Java ES5 interpreter written in Java. ES5 2023-2025 16K MIT
LebJS
StarsLast commit
Java Unfinished JavaScript engine written in Java. no 2021- 14K Apache-2.0
YAJI
StarsLast commit
Java Fork of FESI interpreter with ES5 support. ES5 2011-2012 41K LGPL-3.0
FESI
(archive.org)
Java JavaScript interpreter written in Java. ES1 1998-2003 24K LGPL-2.0+
Porffor
StarsLast commit
JavaScript Optimizing AOT compiler for JavaScript/TypeScript targetting WebAssembly and native binaries. 2023- 28K MIT
JS-Interpreter
StarsLast commit
JavaScript Sandboxed ES5 interpreter in JavaScript. ES5 2013- 5.0K Apache-2.0
bramblex/jsjs
StarsLast commit
TypeScript Toy metacircular JavaScript interpreter. 2018 662 Missing
ts2c
StarsLast commit
TypeScript JavaScript/TypeScript to C transpiler. ES3 2016- 9.5K ISC
sablejs
StarsLast commit
JavaScript Closed-source bytecode-based sandboxed ES5 interpreter in JavaScript. ES5 2020-2022 Custom
Narcissus
StarsLast commit
JavaScript Metacircular JavaScript interpreter, was used for prototyping new language features in ES6. ES5 2007-2012 6.3K MPL/GPL/LGPL
engine262
StarsLast commit
TypeScript An implementation of ECMA-262 in JavaScript aiming for 100% spec compliance, fast prototyping, validating new spec versions and test262. ESnext 2018- 39K MIT
eval5
StarsLast commit
TypeScript ES5 interpreter written in TypeScript. ES5 2019- 1.7K MIT
EchoJS
StarsLast commit
JavaScript AOT compiler and runtime for ES6. ES6 2012-2023 39K MIT
sval
StarsLast commit
TypeScript Metacircular JavaScript interpreter. ES2017 2018- 2.1K MIT
Tachyon
StarsLast commit
JavaScript Metacircular VM for JavaScript (ES5) written in JavaScript. ES5 2010-2012 58K BSD-3
jscomp
StarsLast commit
TypeScript AOT compiler targetting native code via C++. ES5 2015-2016 20K Apache-2.0
SandboxJS
StarsLast commit
TypeScript Interpreter for a limited subset of ES6 for sandboxing untrusted code, preventing access to non-whitelisted functions/prototypes. ES6 2019- 4.2K MIT
metaes
StarsLast commit
TypeScript Metacircular JavaScript interpreter. ES2017 2015-2022 2.8K MIT
Tessel Colony
StarsLast commit
JavaScript JavaScript to Lua compiler. ES5 2013-2015 1.8K Apache/MIT
Continuum
StarsLast commit
JavaScript ES6 interpreter written in ES3. ES6 2012-2014 22K MIT
Reeva
StarsLast commit
Kotlin JavaScript interpreter for JVM written in Kotlin. 2020- 26K BSD-2
Charon
(bitbucket.org)
Limbo JavaScript engine of Inferno OS (Plan 9's successor)'s Charon browser. 2006 7.3K MIT
CL-JavaScript
StarsLast commit
Lisp JavaScript to Common Lisp compiler. ES3 2009-2012 3.4K MIT
Ejacs
StarsLast commit
Lisp Toy JavaScript interpreter for Emacs, inspired by Narcissus. ES1 2008 9.9K GPL-2.0
castl
StarsLast commit
Lua Self-hosting JavaScript to Lua compiler with a runtime library and eval(). ES5 2014-2017 6.4K LGPL-3.0+
Bali
StarsLast commit
Nim Unfinished JavaScript engine written in Nim. no 2024- 13K BSD-3
BESEN
StarsLast commit
Pascal JIT-enabled ES5 engine written in Object Pascal. ES5 2009-2020 57K LGPL-2.1
DMonkey
(archive.org)
Pascal ECMAScript engine written in Delphi. 2005 55K BSD-3
je-perl
(metacpan.org)
Perl JavaScript engine in pure Perl. ES3 2007-2014 11K Artistic/GPL
Js2Py
StarsLast commit
Python JavaScript interpreter written in Python. ES5 2014-2022 69K MIT
rpython-langjs
StarsLast commit
Python JavaScript interpreter for PyPy. ES3 2009-2013 7.2K Missing
twostroke
StarsLast commit
Ruby JavaScript interpreter written in Ruby. ES3 2011-2012 4.7K MIT
Boa
StarsLast commit
Rust Embeddable Javascript engine written in Rust. ESnext 2018- 141K MIT/Unlicense
Nova
StarsLast commit
Rust Experimental JavaScript engine written in Rust with a cache-friendly data-oriented design. ES6+ 2022- 102K MPL-2.0
Jawsm
StarsLast commit
Rust JavaScript to WebAssembly compiler. 2024- 12K Apache-2.0
Rapidus
StarsLast commit
Rust JavaScript engine written in Rust, aiming at ES5. ES5 2018-2021 11K MIT
Starlight
StarsLast commit
Rust JavaScript engine written in Rust. no 2021 28K MPL-2.0
echosoar/jsi
StarsLast commit
Rust JavaScript interpreter written in Rust with QuickJS-inspired bytecode. no 2022- 5.9K MIT
DelSkayn/toyjs
StarsLast commit
Rust Toy JavaScript interpreter written in Rust. 2020-2024 19K Missing
Yavashark
StarsLast commit
Rust JavaScript/TypeScript engine written in Rust. 2024- 177K MIT
Brimstone
StarsLast commit
Rust Javascript engine written in Rust, with nearly complete ES2025 support. ESnext 2022- 74K Missing
Kiesel
StarsLast commit
Zig JavaScript engine written in Zig. ESnext 2023- 59K MIT

JavaScript-like

Engines that implement a rather non-standard JavaScript-like language or dialect, sufficiently different by design to interoperate with any common tooling and libraries:

Engine Language Description Years LOC License
Nerd / NectarJS
StarsLast commit
C++ Compiler for a subset of JavaScript targetting native binaries. 2017-2022 12K MIT
Espruino
StarsLast commit
C Interpreter for a subset of JavaScript for Espruino microcontrollers. 2013- 28K MPL-2.0
cesanta/mjs
StarsLast commit
C Interpreter for a subset of JavaScript for microcontrollers. 2016- 10K GPL-2.0
cesanta/elk
StarsLast commit
C Toy interpreter for microcontrollers for a small JavaScript subset. 2019- 1.2K AGPL
tjs2
StarsLast commit
C++ JavaScript-like scripting engine of KRKR2/KRKRZ game engines. 2000-2017 36K Custom
Microvium
StarsLast commit
C Tiny interpreter for microcontrollers for a small JavaScript subset. 2020-2023 21K MIT
ucode
StarsLast commit
C Interpreter for a small ES6-like language for microcontrollers from OpenWrt project. 2020- 40K ISC
motet-a/toy
StarsLast commit
C Tiny self-compiling interpreter for a subset of JavaScript. 2017 2.0K MIT
Guile
(gnu.org)
C Features a toy unfinished ECMAScript interpreter as of version 1.9. 2009 1.7K LGPL-3.0+
JUCE C++ JUCE music apps framework used to have own rudimentary interpreter for a JavaScript subset. 2013-2023 3.1K ISC
AssemblyScript
StarsLast commit
TypeScript Compiler for a restricted TypeScript dialect to WebAssembly. 2017- 72K Apache-2.0
wasmnizer-ts
StarsLast commit
TypeScript Compiler for a TypeScript subset targetting WebAssembly. 2023-2024 55K Apache-2.0
Jispy
StarsLast commit
Python Interpreter for a JavaScript-like language written in Python. 2014-2017 1.2K MPL-2.0

Links