Open-source compiler software
1008 open-source libraries, tools and applications tagged compiler, ranked by how closely compiler is their primary purpose, then by adoption and maintenance health. Each entry links to a page with sources, use cases and when to choose or avoid it.
1008 products, primary matches first, then adoption-weighted; health v2 shown.
| Product | Health v2 | Stars | Maturity |
|---|---|---|---|
| berry-lang/berry Berry is an ultra-lightweight dynamically typed embedded scripting language written in ANSI C99, designed for low-performance embedded devi… | 66 | 1069 | active |
| hlorenzi/customasm customasm is an assembler written in Rust that lets users define their own custom instruction sets and assemble source files into machine c… | 91 | 1065 | active |
| yhirose/cpp-peglib A single-file, header-only C++17 library for Parsing Expression Grammars (PEG) with packrat parsing, left recursion support, and AST genera… | 100 | 1064 | active |
| E-xyza/zigler Zigler is an Elixir (and experimental Erlang) library that makes it easy to write Zig-based NIFs (Native Implemented Functions) for the BEA… | 78 | 1063 | active |
| jserv/amacc AMaCC is a small, from-scratch C compiler targeting 32-bit Arm (armv7hf) that can execute code via a JIT compiler or generate ELF executabl… | 44 | 1062 | active |
| onnx/onnx-mlir ONNX-MLIR is a compiler infrastructure built on LLVM/MLIR that lowers ONNX neural network graphs into executable code, MLIR files, LLVM byt… | 86 | 1061 | active |
| secure-software-engineering/phasar PhASAR is a LLVM-based static analysis framework written in C++20 that solves user-specified data-flow problems automatically on LLVM IR. I… | 77 | 1058 | active |
| PostCSS Plugins (csstools plugin monorepo incl. PostCSS Preset Env) PostCSS Preset Env is a PostCSS plugin pack that transpiles modern CSS features (nesting, cascade layers, color functions, custom media, et… | 76 | 1057 | active |
| i-net-software/JWebAssembly JWebAssembly is a Java bytecode to WebAssembly compiler that takes Java class files as input and generates .wasm binary or .wat text output… | 66 | 1056 | active |
| LuisaGroup/LuisaCompute LuisaCompute is a high-performance cross-platform computing framework for graphics and beyond, featuring a C++-embedded DSL for GPU kernel … | 77 | 1055 | active |
| albertodemichelis/squirrel Squirrel is a high-level imperative, object-oriented scripting language implemented in C++, designed to be lightweight enough to embed in a… | 50 | 1055 | stable |
| zxh0/jvm.go jvm.go is a toy Java Virtual Machine implemented in Go, focused on code readability as a learning project for both Go and the JVM. It imple… | 32 | 3598 | maintenance |
| ac3ss0r/obfusheader.h Obfusheader.h is a portable, header-only C++14 library providing compile-time obfuscation via metaprogramming, including string and constan… | 72 | 1053 | active |
| tomhrr/dale Dale is a system-level programming language with Lisp-style S-expression syntax that compiles via LLVM, similar to C but with macros, type … | 27 | 1048 | active |
| veryl-lang/veryl Veryl is a modern hardware description language based on SystemVerilog, with a Rust-implemented compiler that transpiles Veryl source into … | 99 | 1046 | active |
| MobiVM/robovm MobiVM (RoboVM) is an ahead-of-time compiler that translates JVM bytecode (Java, Kotlin, etc.) into native code via LLVM, targeting iOS, ma… | 86 | 1043 | active |
| eclipse-langium/langium Eclipse Langium is a TypeScript framework for building programming languages and domain-specific languages with built-in Language Server Pr… | 94 | 1039 | active |
| ruby/prism Prism is a portable, error-tolerant parser for the Ruby programming language written in dependency-free C99. It provides a shared library (… | 89 | 1039 | stable |
| NVIDIA/cuda-tile CUDA Tile IR is an MLIR-based intermediate representation and compiler infrastructure for optimizing CUDA kernels with tile-based computati… | 80 | 1035 | active |
| quickjs-zh/QuickJS QuickJS is a small, embeddable JavaScript engine written in C supporting ES2023 (including modules, async generators, and proxies), with a … | 43 | 3518 | maintenance |
| luontola/retrolambda Retrolambda is a Java bytecode transformation tool that backports Java 8 lambda expressions, method references, and try-with-resources to J… | 32 | 3513 | maintenance |
| ArashPartow/exprtk ExprTk is a C++ runtime mathematical expression parsing and evaluation engine, provided as an easy-to-integrate library. It supports arithm… | 71 | 1028 | stable |
| Microsoft Quantum Development Kit The Microsoft Quantum Development Kit provides tooling for the Q# quantum programming language, including a compiler, language service, sta… | 94 | 1024 | active |
| idris-lang/Idris-dev Idris 1 is a general-purpose functional programming language with full dependent types, implemented in Haskell, supporting type-driven deve… | 10 | 3477 | maintenance |
| MoonScript MoonScript is a programmer-friendly dynamic scripting language with significant whitespace, classes, and comprehensions that compiles to Lu… | 79 | 3473 | maintenance |
| Accelerate Accelerate is an embedded domain-specific language in Haskell for high-performance, multi-dimensional array computations. Programs written … | 59 | 1020 | active |
| redox-os/relibc relibc is a portable C standard library written in Rust, providing C, Linux, and BSD functions, a POSIX compatibility layer, and interfaces… | 75 | 1016 | active |
| eclipse-omr/omr Eclipse OMR is a set of open source C and C++ components for building robust, high-performance language runtimes across many hardware and O… | 95 | 1013 | active |
| JuliaHubOSS/llvm-cbe llvm-cbe is a resurrected LLVM C Backend that translates LLVM IR into human-readable C code, maintained by Julia Computing with improvement… | 72 | 1012 | active |
| vekatze/neut Neut is a functional programming language with static, type-directed memory management that compiles to LLVM IR and native binaries. It off… | 90 | 1010 | active |
| sebpiq/WebPd WebPd is a compiler for the Pure Data audio programming language that lets you run .pd patches in web pages. It converts patches into plain… | 69 | 1003 | active |
| jakogut/tinyvm TinyVM is a small, fast, lightweight virtual machine written in pure ANSI C with minimal memory footprint and no external dependencies beyo… | 32 | 3325 | maintenance |
| pytorch/glow Glow is a machine learning compiler and execution engine for neural network hardware accelerators, developed under the PyTorch project. It … | 10 | 3316 | maintenance |
| Arduino IDE 2.x The legacy Arduino IDE 1.x, an open-source desktop development environment for writing, compiling, and uploading sketches to Arduino boards… | 88 | 3284 | maintenance |
| bytedance/ByteX ByteX is a bytecode plugin platform built on the Android Gradle Transform API and ASM, developed by ByteDance's TikTok/Douyin Android team.… | 10 | 3243 | maintenance |
| open-mmlab/mmdeploy MMDeploy is the OpenMMLab model deployment framework that converts PyTorch-based OpenMMLab models (mmdetection, mmsegmentation, etc.) into … | 23 | 3141 | maintenance |
| Soot Soot is a Java bytecode analysis and optimization framework providing four intermediate representations (Baf, Jimple, Shimple, Grimp) for a… | 75 | 3100 | maintenance |
| rubinius/rubinius Rubinius is a language platform and virtual machine that supports multiple programming languages, best known as an alternative implementati… | 38 | 3094 | maintenance |
| snabbco/snabb Snabb is a simple and fast packet networking toolkit written in Lua on LuaJIT, using kernel-bypass Ethernet I/O. It compiles to a single bu… | 62 | 3033 | maintenance |
| weld-project/weld Weld is a language and high-performance runtime that optimizes data-intensive analytics workflows by expressing computations in a common in… | 54 | 3008 | maintenance |
| BayesWitnesses/m2cgen m2cgen is a lightweight Python library that transpiles trained statistical machine learning models into native code in languages such as Py… | 23 | 2999 | maintenance |
| gss/engine GSS (Grid Style Sheets) is a JavaScript engine that compiles and runs constraint-based layout rules for the DOM, implementing Constraint Ca… | 23 | 2849 | maintenance |
| elsaland/elsa Elsa is a minimal JavaScript and TypeScript runtime written in Go, built on the QuickJS engine and inspired by Deno. It supports URL import… | 32 | 2832 | maintenance |
| wix-incubator/react-templates React Templates is a lightweight precompiler that converts .rt files (an extended HTML format) into plain JavaScript functions returning Re… | 32 | 2808 | maintenance |
| lifting-bits/mcsema McSema is a framework that lifts native x86, amd64, aarch64, sparc32, and sparc64 executable binaries (ELF and PE) into LLVM bitcode. It wo… | 10 | 2792 | maintenance |
| google/enjarify Enjarify is a Python 3 tool that translates Dalvik bytecode from Android APK/DEX files into equivalent Java bytecode (JAR), enabling Java a… | 10 | 2744 | maintenance |
| estools/escodegen Escodegen is an ECMAScript (JavaScript) code generator that produces JavaScript source code from ESTree/Mozilla Parser API abstract syntax … | 32 | 2687 | maintenance |
| typelead/eta Eta is a dialect of Haskell that compiles to and runs on the JVM, forked from GHC 7.10.3 with strong Java interoperability via a typed FFI.… | 23 | 2635 | maintenance |
| drh/lcc lcc is a retargetable ANSI C (C89) compiler with code generators for Alpha, SPARC, MIPS R3000, and x86. It is the companion to the book 'A … | 32 | 2631 | maintenance |
| kentcdodds/babel-plugin-macros babel-plugin-macros defines a standard interface for Babel macros, letting libraries perform compile-time code transformations without user… | 23 | 2631 | maintenance |
| GHCJS GHCJS is a Haskell to JavaScript compiler built on the GHC API, compiling Haskell programs and packages to run in browsers and Node.js. It … | 32 | 2618 | maintenance |
| PiotrDabkowski/Js2Py Js2Py is a pure Python JavaScript translator and interpreter that can evaluate JavaScript code from Python or translate JS files into Pytho… | 32 | 2570 | maintenance |
| google/autocxx Autocxx is a Rust library and code-generation tool that automatically generates safe, ergonomic bindings for calling C++ from Rust, driven … | 10 | 2561 | maintenance |
| LiveScript LiveScript is a programming language that compiles to JavaScript, forked from Coco and indirectly descended from CoffeeScript. It offers ex… | 32 | 2371 | maintenance |
| Huatuo Huatuo is a native C# hot-update solution for Unity that extends the il2cpp AOT runtime into an 'AOT + Interpreter' hybrid runtime, enablin… | 32 | 2338 | maintenance |
| reactjs/React.NET ReactJS.NET is a .NET library that integrates Facebook's React and JSX compilation (via Babel) into C# and ASP.NET MVC applications. It pro… | 51 | 2321 | maintenance |
| microsoft/ELL ELL (Embedded Learning Library) is a C++ library and toolset from Microsoft Research for designing and deploying machine-learned models ont… | 10 | 2302 | maintenance |
| glslify A node.js-style module system for GLSL shaders, letting you import shader modules from npm and compile them into a single shader file. It s… | 23 | 2287 | maintenance |
| samgozman/YoptaScript YoptaScript is a joke programming language that transpiles to JavaScript, using Russian street slang ('gopnik' dialect) as its syntax. It r… | 71 | 2252 | maintenance |
| jameysharp/corrode Corrode is a Haskell-based command-line tool that automatically translates C source code into semantically equivalent Rust source. It parti… | 32 | 2186 | maintenance |
| plasma-umass/doppio Doppio is a POSIX-compatible runtime system and a Java Virtual Machine (JVM) implemented entirely in TypeScript, allowing Java bytecode to … | 23 | 2181 | maintenance |
| leafo/lessphp lessphp is a compiler for the LESS CSS preprocessor language written entirely in PHP, distributed as a single includable class with an opti… | 32 | 2175 | maintenance |
| karalabe/xgo xgo is a Docker-based Go CGO cross compiler that bundles Go toolchains, C cross compilers, and platform headers/libraries into a single con… | 10 | 2144 | maintenance |
| dapptools Dapptools is a suite of Unix-philosophy CLI tools for Ethereum smart contract development, including dapp (build/test/fuzz/deploy), seth (E… | 23 | 2123 | maintenance |
| js2coffee/js2coffee js2coffee is a JavaScript-to-CoffeeScript compiler available as a CLI tool and a Node.js/browser library. It parses JavaScript with Esprima… | 32 | 2080 | maintenance |
| skiplang/skip Skip is a statically typed, ahead-of-time compiled general-purpose programming language that tracks side effects to enable safe memoization… | 32 | 2022 | maintenance |
| rust-lang/chalk Chalk is a Rust library that implements the Rust trait system using a Prolog-like logic solver, converting trait and impl information into … | 49 | 2017 | maintenance |
| areslabs/alita Alita is a conversion engine that transpiles React Native code to run as WeChat Mini Program code, using a runtime JSX processing approach … | 23 | 2012 | maintenance |
| weak1337/Alcatraz Alcatraz is a GUI-based x64 binary obfuscator for Windows PE files (.exe, .dll, .sys) written in C++. It applies transformations like contr… | 32 | 2000 | maintenance |
| charto/nbind nbind is a set of C++11 header files that automatically generate JavaScript bindings for C++ libraries with a single #include, usable as No… | 23 | 1998 | maintenance |
| 9fans/plan9port Plan 9 from User Space (plan9port) is a port of many Plan 9 libraries and programs from their native Plan 9 environment to Unix-like operat… | 73 | 1964 | maintenance |
| The-OpenROAD-Project/OpenLane OpenLane is an automated RTL-to-GDSII ASIC implementation flow built on OpenROAD, Yosys, Magic, Netgen, KLayout, and custom Python methodol… | 62 | 1950 | maintenance |
| anmonteiro/lumo Lumo is a standalone, cross-platform ClojureScript REPL and environment that runs on Node.js and V8, starting up instantaneously. It also p… | 10 | 1873 | maintenance |
| dcevm/dcevm DCEVM is a patched OpenJDK HotSpot virtual machine that enables enhanced class redefinition for Java 7 and 8, allowing structural changes t… | 23 | 1859 | maintenance |
| vuejs/babel-plugin-transform-vue-jsx A Babel plugin that transpiles JSX syntax into Vue 2.0 render function calls using the h (createElement) function. It allows Vue 2 develope… | 32 | 1847 | maintenance |
| microsoft/ShaderConductor ShaderConductor is a C++ tool and library that cross-compiles HLSL shaders to other shading languages such as GLSL, ESSL, and Metal Shading… | 10 | 1836 | maintenance |
| michaelficarra/CoffeeScriptRedux A rewrite of the CoffeeScript compiler built with proper compiler design principles, emphasizing robustness and extensibility. It compiles … | 32 | 1825 | maintenance |
| OpenPPL/ppq PPQ (PPL Quantization Tool) is an extensible, high-performance offline neural network quantization framework written in Python. It parses a… | 23 | 1822 | maintenance |
| facebookresearch/TensorComprehensions Tensor Comprehensions is a C++ library with a Python API that provides a domain-specific language for expressing machine learning workloads… | 10 | 1769 | maintenance |
| soul-lang/SOUL SOUL (SOUnd Language) is a programming language and API for writing high-performance, low-latency audio DSP code, created at ROLI by Julian… | 23 | 1744 | maintenance |
| sq/JSIL JSIL is a compiler that transforms .NET CIL bytecode into readable, standards-compliant JavaScript that runs in browsers or other JavaScrip… | 10 | 1733 | maintenance |
| foniod/redbpf RedBPF is a Rust eBPF toolchain consisting of libraries and a cargo subcommand for writing, building, and loading eBPF programs. It provide… | 10 | 1719 | maintenance |
| cheekybits/genny Genny is a code-generation tool that provides generics-like functionality for Go before native generics existed. It processes valid Go sour… | 32 | 1717 | maintenance |
| jphp-group/jphp JPHP is an implementation of the PHP language (7.1+) that compiles PHP source code to JVM bytecode and executes it on the Java VM. It enabl… | 23 | 1712 | maintenance |
| perlin-network/life Life is a secure and fast WebAssembly virtual machine written in pure Go, featuring an interpreter and an experimental AOT compilation engi… | 32 | 1690 | maintenance |
| asLody/whale Whale is a cross-platform hook framework written in C++ that runs on Android, iOS, Linux, and macOS, supporting ARM/THUMB, ARM64, X86, and … | 32 | 1665 | maintenance |
| badamczewski/PowerUp PowerUp is a collection of .NET-based productivity utilities including a live IDE watcher that compiles, decompiles, and disassembles code … | 32 | 1659 | maintenance |
| robovm/robovm RoboVM is an ahead-of-time compiler and runtime that translates JVM bytecode into native machine code, primarily enabling Java and Kotlin a… | 32 | 1636 | maintenance |
| GWT GWT (Google Web Toolkit) is an open-source SDK that lets developers write client-side web applications in Java and compile them to optimize… | 93 | 1630 | maintenance |
| Megalo Megalo is a Vue-based framework for developing mini-programs (WeChat, Alipay, Baidu, ByteDance) using Vue 2.6 syntax. It enables efficient … | 32 | 1614 | maintenance |
| zetzit/zz ZetZ is a C dialect and transpiler that emits plain ANSI C while formally verifying all code via symbolic execution with an SMT prover at c… | 10 | 1597 | maintenance |
| itsfrank/MinecraftHDL MinecraftHDL is a Verilog synthesis flow that compiles digital logic designs written in Verilog into Minecraft redstone circuits. It uses i… | 23 | 1595 | maintenance |
| pmq20/ruby-packer Ruby Packer (rubyc) compiles Ruby applications, including Rails apps and native C extensions, into a single self-contained executable for W… | 23 | 1590 | maintenance |
| csstools/precss PreCSS is a PostCSS plugin that lets you write Sass-like markup—variables, conditionals, iterators, nesting, and extends—directly in CSS fi… | 10 | 1587 | maintenance |
| unixpickle/gobfuscate A command-line tool that obfuscates Go binaries by compiling from obfuscated source code. It hashes package names, global identifiers, meth… | 32 | 1573 | maintenance |
| Jython Jython is an implementation of the Python programming language written in Java that runs on the JVM, currently supporting Python 2.7 with w… | 84 | 1549 | maintenance |
| VcDevel/Vc Vc is a portable, zero-overhead C++ library providing vector class types for explicit data-parallel (SIMD) programming. It lets developers … | 60 | 1545 | maintenance |
| Battelle/movfuscator The M/o/Vfuscator is a C compiler that compiles programs into x86 'mov' instructions only, performing all arithmetic, control flow, and fun… | 32 | 1539 | maintenance |
| csvoss/onelinerizer Oneliner-izer is a Python tool that converts any Python 2 script into a single line of code using lambda expressions, list comprehensions, … | 29 | 1524 | maintenance |
| fetlang/fetlang Fetlang is a statically typed, procedural esoteric programming language whose source code is written to resemble poorly written fetish erot… | 32 | 1505 | maintenance |