Awesome-JIT
November 25, 2025 ยท View on GitHub
======================================== Awesome-JIT
.. contents:: Table of Contents
Libraries
Help you implement JIT
AsmJit <https://github.com/kobalicek/asmjit>_ - Complete x86/x64 JIT and Remote Assembler for C++DynASM <http://luajit.org/dynasm.html>_LibJIT <https://www.gnu.org/software/libjit/>_LLVM - MCJIT <http://llvm.org/docs/MCJITDesignAndImplementation.html>_LLVM - ORC <https://www.llvm.org/docs/ORCv2.html>_ - Successor to MCJITGCC - libgccjit <https://gcc.gnu.org/onlinedocs/jit/>_GNU lightning <https://www.gnu.org/software/lightning/>_ - a library that generates assembly language code at run-timeXbyak <https://github.com/herumi/xbyak>_ - JIT assembler for x86(IA32), x64(AMD64, x86-64) by C++sljit <http://sljit.sourceforge.net/>_ - a stack-less platform independent JIT compilerMIR <https://github.com/vnmakarov/mir>_ - a new JIT backend in C being developed by a Redhat GCC maintainerNanoJIT <https://github.com/dibyendumajumdar/nanojit>_ - a small JIT engine originally written by Adobe for Flashnj <https://github.com/dibyendumajumdar/nj>_ - a JIT engine written in C++ based onEclipse OMR <https://github.com/eclipse/omr>_. Eclipse OMR is used in IBM's Java implementation, but the JIT engine is genericCranelift <https://github.com/bytecodealliance/wasmtime/tree/main/cranelift>_ - A Rust powered JIT compiler for x86-64, aarch64 and s390x created by the Wasmtime team for their WASI interpreter.
Comes with JIT support
- Python
Numba <http://numba.pydata.org/>_ - NumPy aware dynamic Python compiler using LLVM
Programming Languages Implementation
-
Julia <https://github.com/JuliaLang/julia>_ -
Python
PyPy <https://github.com/pypy/pypy>_Pyston <https://github.com/dropbox/pyston>_ - performance-oriented Python implementation built using LLVM and modern JIT techniquesPyjion <https://github.com/Microsoft/Pyjion>_ - JIT for Python based upon CoreCLR
-
Lua
LuaJIT <https://github.com/LuaJIT/LuaJIT>_ - An extremely fast Lua Just-in-Time compiler and interpreter.MoonJIT <https://github.com/moonjit/moonjit>_ - Just-In-Time Compiler for the Lua Programming language. Fork of LuaJIT to continue developmentRavi <https://github.com/dibyendumajumdar/ravi>_ - a derivative/dialect of Lua 5.3 with limited optional static typing and an LLVM powered JIT compilerRaptorJIT <https://github.com/raptorjit/raptorjit>_ - a fork of LuaJIT focused on predictably high performance.LuaJIT Remake <https://github.com/luajit-remake/luajit-remake>_ - A LuaJIT Remake that leverages new techniques like "Copy & Patch" JIT and an interpreter generated by the semantical description of LuaJIT Bytecodes.
-
JavaScript
V8 <https://github.com/v8/v8>_ - High-performance Javascript and Webassembly engine developed by google around the "Sea of Nodes" conceptSpiderMonkey <https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Getting_SpiderMonkey_source_code>_ - Firefox's Javascript and Webassembly engine using the WarpMokey JIT engineJavaScriptCore <https://github.com/WebKit/WebKit/tree/main/Source/JavaScriptCore>_ - High-performance Javascript and Webassembly engine developed by Apple for WebKit. Uses the B3 backend.Chakra <https://github.com/chakra-core/ChakraCore>_ - Microsoft's JavaScript engine. Used to be the JS engine of Explorer and the early MSEdge.IV <https://github.com/constellation/iv>_ - Javascript engine written in C++ that supports ECMAScript 262 5.1.BESEN <https://github.com/BeRo1985/besen>_ - Javascript engine written in object Pascal.Higgs <https://github.com/higgsjs/Higgs>_ - Javascript engine written in D. Made by Maxime Chevalier-Boisvert, the same fella who participated in YJIT cited below.
-
PHP
HHVM <http://hhvm.com/>_HippyVM <https://github.com/hippyvm/hippyvm>_
-
Ruby
Topaz <https://github.com/topazproject/topaz>_MJIT <https://blog.heroku.com/ruby-mjit>_YJIT <https://pointersgonewild.com/2021/06/02/yjit-building-a-new-jit-compiler-inside-cruby/>_ - A new Ruby JIT Compiler written in Rust by Shopify.JRuby <https://www.jruby.org/>_TruffleRuby <https://www.graalvm.org/ruby/>_
-
Lisp
CLISP <http://www.clisp.org/>_Pixie <https://github.com/pixie-lang/pixie>_
-
Smalltalk
GNU Smalltalk <http://smalltalk.gnu.org/>_RSqueak <https://github.com/HPI-SWA-Lab/RSqueak/>_
-
Prolog
Pyrolog <https://bitbucket.org/cfbolz/pyrolog>_
-
Racket <http://racket-lang.org/>_ -
Java
HotSpot <http://openjdk.java.net/groups/hotspot/>_Dalvik <https://source.android.com/devices/tech/dalvik/index.html>_Avian <https://readytalk.github.io/avian/>_ - A lightweight alternative to JavaJikes RVM <http://www.jikesrvm.org/>_ - Research Virtual MachineMaxine VM <https://github.com/beehive-lab/Maxine-VM>_ - Metacircular Research Virtual Machine
-
Erlang
- BEAMJIT
-
WebAssembly
wasm-jit <https://github.com/indutny/wasm-jit>_wasmtime <https://github.com/bytecodealliance/wasmtime>_wasmer <https://github.com/wasmerio/wasmer>_WAVM <https://github.com/WAVM/WAVM>_
-
LLVM IR
Sulong <https://github.com/graalvm/sulong>_ - an interpreter for LLVM IR written in Java using the Truffle language implementation framework and Graal as a just-in-time (JIT) compiler
-
SOM (Simple Object Machine)
RPySOM <https://github.com/SOM-st/RPySOM>_ - The Simple Object Machine Smalltalk implemented in RPythonRTruffleSOM <https://github.com/SOM-st/RTruffleSOM>_ - combining ideas from Truffle and TruffleSOM with RPython's metatracing
-
.NET <https://github.com/dotnet/coreclr>_ -
ZetaVM <https://github.com/zetavm/zetavm>_ -
Ethereum
EVM JIT <https://github.com/ethereum/evmjit>_
-
MATLAB
RunMat <https://github.com/runmat-org/runmat>_ โ MATLAB-syntax runtime with a tiered JIT (Cranelift) and GPU-fused array kernels.
Bindings
llvmlite <https://github.com/numba/llvmlite>_ - A lightweight LLVM python binding for writing JIT compilerspygccjit <https://github.com/davidmalcolm/pygccjit>_ - Python bindings for libgccjitgccjit <https://crates.io/crates/gccjit>_ - Rust bindings to libgccjit
Tools
jitpy <https://github.com/fijal/jitpy>_ - Library to embed PyPy into CPythonRPython Toolchain <https://rpython.readthedocs.io/en/latest/index.html>_ - framework for producing implementations of dynamic languagesTruffle <https://github.com/graalvm/truffle>_ - Language Implementation FrameworkJITWatch <https://github.com/AdoptOpenJDK/jitwatch>_ - Log analyser and visualiser for the HotSpot JIT compiler
Papers
- [2003]
A Brief History of Just-In-Time <http://dl.acm.org/citation.cfm?id=857077>_ - [2010]
OCamlJIT 2.0 - Faster Objective Caml <https://arxiv.org/abs/1011.1783>_ - [2015]
Pycket: A Tracing JIT For a Functional Language <http://dl.acm.org/citation.cfm?id=2784740>_ - [2015]
Making an Embedded DBMS JIT-friendly <http://arxiv.org/abs/1512.03207>_ - [2021]
Copy-and-Patch Compilation: A fast compilation algorithm for high-level languages and bytecode <https://arxiv.org/pdf/2011.13127.pdf>_
JIT in Database
PostgreSQL <https://github.com/postgres/postgres>_src/backend/jit
- SQlite
SQPyte <https://bitbucket.org/softdevteam/sqpyte>_
Resources
@LuaJIT <https://twitter.com/luajit>_@pypyproject <https://twitter.com/pypyproject>_
Other Projects (Not Designed for JIT but can be useful)
QBE <https://c9x.me/compile/>_ - written in C, similar to LLVM but much smallerQBE (Rust) <https://crates.io/crates/qbe>_ - Rust implementation of QBE's IRdiscussion <https://lists.sr.ht/~mpu/qbe/\<CAFbATBGDOmpxDoVD9eAudiqAMAFskD-sMeyOn5jz63iNeWYK0g%40mail.gmail.com\>>_