Open-source compilers software
495 open-source libraries, tools and applications tagged compilers, ranked by how closely compilers 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.
495 products, primary matches first, then adoption-weighted; health v2 shown.
| Product | Health v2 | Stars | Maturity |
|---|---|---|---|
| hyperledger-solang/solang Solang is a Solidity compiler written in Rust that uses LLVM as its backend, targeting non-EVM blockchains such as Solana, Polkadot paracha… | 86 | 1383 | active |
| esseks/monicelli Monicelli is an esoteric programming language based on the 'supercazzole' gibberish from the Italian comedy film Amici Miei. It ships with … | 47 | 1381 | active |
| google/j2cl J2CL is a transpiler from Google that converts Java source code into Closure-style JavaScript, tightly integrated with Closure Compiler for… | 81 | 1380 | active |
| ldc-developers/ldc LDC is a portable compiler for the D programming language that uses the official DMD frontend and LLVM for optimization and code generation… | 89 | 1377 | active |
| KhronosGroup/SPIRV-Tools SPIR-V Tools is a Khronos Group project providing an API and command-line tools for processing SPIR-V modules, including an assembler, bina… | 95 | 1371 | stable |
| gluck/il-repack ILRepack is an open-source command-line tool that merges multiple .NET assemblies into a single assembly, serving as a replacement for the … | 90 | 1367 | active |
| py2many/py2many py2many is a Python-based source-to-source transpiler that converts Python code into multiple statically-typed languages including Rust, C+… | 84 | 1330 | active |
| inko-lang/inko Inko is a statically typed programming language for building concurrent software, compiled to machine code via LLVM. It offers deterministi… | 77 | 1307 | active |
| roblox-ts/roblox-ts roblox-ts is a TypeScript-to-Luau compiler that lets developers write Roblox game code in TypeScript and transpiles it into functionally eq… | 66 | 1307 | active |
| plaidml/plaidml PlaidML is a portable tensor compiler that enables deep learning on hardware (especially GPUs and embedded devices) not well supported by m… | 10 | 4566 | maintenance |
| open-watcom/open-watcom-v2 Open Watcom V2 is the continued development of the classic Watcom C/C++ and Fortran compiler toolchain, including compilers, linker, debugg… | 86 | 1285 | active |
| CSharp.lua A C# to Lua compiler built on Microsoft Roslyn that transpiles C# source code (up to C# 10) into readable Lua code runnable on a Lua VM. It… | 66 | 1283 | active |
| llir/llvm A pure Go library for parsing, building, and manipulating LLVM IR without any C bindings or cgo. It provides an asm package for parsing LLV… | 23 | 1283 | active |
| swiftlang/swift-llbuild llbuild is a low-level, library-based build system designed as a reusable and scalable build engine capable of handling dependency graphs w… | 97 | 1277 | active |
| verilog-to-routing/vtr-verilog-to-routing Verilog to Routing (VTR) is an open-source CAD toolchain for FPGA research that takes a Verilog circuit description plus a target FPGA arch… | 67 | 1273 | active |
| mighty-gerbils/gerbil Gerbil is an opinionated dialect of Scheme built on the Gambit runtime and compiler, featuring a state-of-the-art macro system (native synt… | 72 | 1270 | active |
| shinh/elvm ELVM is a compiler infrastructure similar to LLVM but targeting esoteric languages, compiling C code (via a modified 8cc frontend) into a s… | 69 | 1266 | active |
| Wandbox Wandbox is an online compiler service (wandbox.org) that lets users write, compile, and run code snippets in dozens of languages — C++, Rus… | 75 | 1265 | stable |
| aras-p/ClangBuildAnalyzer A command-line tool that aggregates Clang -ftime-trace JSON reports across a whole C/C++ build and summarizes what took the most compile ti… | 25 | 1261 | stable |
| Ravi Ravi is a dialect of Lua 5.3 with limited optional static typing, a MIR-based JIT compiler, and AOT compilation to native code. It enhances… | 65 | 1259 | active |
| lfortran/lfortran LFortran is a modern open-source interactive Fortran compiler built on LLVM that can execute code interactively like a REPL and also compil… | 99 | 1254 | active |
| dotnet/ClangSharp ClangSharp provides C# bindings for the Clang C/C++ compiler library, auto-generated from Clang's C headers using ClangSharpPInvokeGenerato… | 87 | 1254 | active |
| obfuscator-llvm/obfuscator Obfuscator-LLVM is a fork of the LLVM compiler infrastructure that adds code obfuscation passes for software protection. It transforms comp… | 32 | 4393 | maintenance |
| batsh-dev-team/Batsh Batsh is a C-based programming language that compiles to both Bash and Windows Batch scripts, letting you write shell scripts once that run… | 23 | 4351 | maintenance |
| morganstanley/hobbes Hobbes is a strongly typed domain-specific language with an embedded JIT compiler and runtime for efficient dynamic expression evaluation, … | 77 | 1230 | active |
| messense/homebrew-macos-cross-toolchains Homebrew tap distributing precompiled GCC cross-compiler toolchains for targeting Linux (x86_64 and aarch64) from macOS, supporting both Ap… | 75 | 1206 | active |
| CakeML/cakeml CakeML is a functional programming language based on a substantial subset of Standard ML, together with a formally verified compiler that i… | 92 | 1204 | active |
| SethBling/cbscript CBScript is a transpiled programming language and compiler by SethBling that compiles .cbscript source files into Minecraft datapack zip fi… | 32 | 1203 | active |
| StepfenShawn/Cantonese Cantonese is a programming language whose keywords are written in Cantonese (Chinese), implemented with a Rust compiler and distributed via… | 75 | 1194 | active |
| GaijinEntertainment/daScript Daslang (formerly daScript) is a high-performance, statically strong-typed scripting language built at Gaijin Entertainment for games and r… | 94 | 1191 | active |
| leaningtech/cheerp-meta Cheerp is an LLVM/Clang-based C/C++ compiler toolchain that compiles C and C++ code to WebAssembly and JavaScript for use in browsers and N… | 39 | 1191 | active |
| Jamesbarford/holyc-lang A from-scratch compiler for HolyC, the language of TempleOS, written in C. It provides AOT and JIT compilation, a REPL, LSP support, an ass… | 86 | 1190 | active |
| Spu7Nix/SPWN-language SPWN is a programming language written in Rust that compiles to Geometry Dash levels, letting creators build levels and trigger logic throu… | 23 | 1183 | active |
| AliveToolkit/alive2 Alive2 is a set of C++ libraries and tools for automatically verifying LLVM code and optimization transformations using symbolic execution … | 70 | 1179 | active |
| souffle-lang/souffle Soufflé is a Datalog variant language for expressing static analyses in Horn clauses, with records, strong typing, aggregation, and compone… | 61 | 1175 | active |
| malinajs/malinajs Malina.js is a frontend component compiler inspired by Svelte that compiles HTML/CSS/JS components into fast, framework-free web applicatio… | 56 | 1153 | active |
| justkey007/tsc-alias tsc-alias is an npm CLI tool and library that rewrites TypeScript path aliases to relative import paths after tsc compilation. It runs as a… | 100 | 1144 | active |
| open-obfuscator/o-mvll O-MVLL is an LLVM-based code obfuscator for native code that integrates with Clang and the Swift compiler via the LLVM pass manager, with o… | 93 | 1142 | active |
| ocsigen/js_of_ocaml Js_of_ocaml is a compiler that translates OCaml bytecode to JavaScript, allowing pure OCaml programs to run in browsers and Node.js. It wor… | 93 | 1133 | active |
| brownplt/pyret-lang Pyret is an educational programming language that blends scripting, functional, and object-oriented styles, designed primarily for teaching… | 76 | 1130 | active |
| zherczeg/sljit SLJIT is a platform-independent, low-level JIT compiler library written in C, designed for translating bytecode into machine code. It suppo… | 76 | 1124 | stable |
| HerringtonDarkholme/vue-compiler A reimplementation of Vue's template compiler written in Rust, distributed as a Rust library, CLI binary, Node.js napi package, and WebAsse… | 77 | 1118 | active |
| freebasic/fbc FreeBASIC (fbc) is a free, open-source, self-hosting multi-platform BASIC compiler with syntax similar to MS-QuickBASIC, adding modern feat… | 53 | 1117 | active |
| facebook/regenerator Regenerator is a source transformer that compiles ECMAScript 2015 generator functions (yield) and async iteration syntax down to efficient … | 10 | 3821 | maintenance |
| HEIR Google's repository of demos for fully homomorphic encryption (FHE), originally a C++ transpiler and now showcasing the HEIR MLIR-based FHE… | 84 | 3784 | maintenance |
| MLton/mlton MLton is a whole-program optimizing compiler for the Standard ML (SML97) programming language that generates small, fast standalone executa… | 66 | 1090 | active |
| Bill-Haku/kawaii-gcc A fun project that replaces GCC compiler diagnostic messages with kawaii (cute) Japanese-style versions by swapping GCC's localization .mo … | 88 | 1088 | active |
| nevalang/neva Neva is a statically typed, compiled dataflow programming language where programs are expressed as message-passing graphs that run in paral… | 92 | 1082 | active |
| Frege Frege is a purely functional programming language for the JVM that is essentially Haskell, featuring a strong static type system with globa… | 61 | 3712 | maintenance |
| GRIN Compiler GRIN (Graph Reduction Intermediate Notation) is a compiler back-end and optimizer for lazy and strict functional languages, providing whole… | 31 | 1080 | active |
| Mercury-Language/mercury The Mercury logic/functional programming language system, including a self-hosting compiler with multiple backends targeting C, C#, and Jav… | 76 | 1074 | 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| facebook/starlark-rust A Rust implementation of the Starlark language, a deterministic Python3-inspired configuration language used by build systems like Bazel an… | 81 | 1034 | 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 |
| 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 |
| 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 |
| 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 |
| flaneur2020/pua-lang pua-lang is a satirical dialect of the Monkey programming language implemented in Rust, with keywords renamed to Alibaba corporate jargon (… | 32 | 3308 | 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 |
| 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 |
| 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 |
| 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 |
| LiveScript LiveScript is a programming language that compiles to JavaScript, forked from Coco and indirectly descended from CoffeeScript. It offers ex… | 32 | 2371 | 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| JeffBezanson/femtolisp FemtoLisp is a lightweight, self-contained Scheme-like Lisp interpreter written in under 1000 lines of C, featuring a bytecode compiler and… | 32 | 1723 | 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| cincheo/jsweet JSweet is a Java-to-JavaScript transpiler that compiles Java source code to TypeScript and JavaScript, leveraging javac and tsc for type-ch… | 23 | 1490 | maintenance |
| yasm/yasm Yasm is a modular assembler, a complete rewrite of NASM under the BSD license, supporting x86 and AMD64 instruction sets with NASM and GAS … | 62 | 1485 | maintenance |
| alpaca-lang/alpaca Alpaca is a statically typed, eagerly evaluated functional programming language for the Erlang VM (BEAM), inspired by ML and featuring Hind… | 23 | 1466 | maintenance |
| nedbat/byterun Byterun is a pure-Python implementation of a Python bytecode execution virtual machine. It was created to understand CPython bytecodes, ori… | 32 | 1364 | maintenance |