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 |
|---|---|---|---|
| MichiganTypeScript/typescript-types-only-wasm-runtime A WebAssembly runtime implemented entirely in TypeScript's type system, with no JavaScript runtime code, capable of compiling and executing… | 29 | 2409 | abandoned |
| move-language/move The original home of the Move programming language, a Rust-based language and toolchain for safe smart-contract development on blockchains.… | 10 | 2328 | abandoned |
| fsharp/fsharp The historical repository for alternative packagings of the F# compiler, F# Interactive (fsi), and FSharp.Core, distributed via the FSharp.… | 10 | 2156 | abandoned |
| unofficial-openjdk/openjdk An automated read-only Git mirror of various OpenJDK branches, not intended for contributions. The repository is no longer actively updated… | 32 | 2128 | abandoned |
| Hikari Obfuscator Hikari is an LLVM-based code obfuscator that transforms compiled binaries with techniques like string encryption, indirect branching, funct… | 10 | 2103 | abandoned |
| rui314/9cc 9cc is a small C compiler written in C that compiles source code to x86-64 assembly through a simple, readable pipeline of parsing, semanti… | 32 | 1950 | abandoned |
| tweag/asterius Asterius is a Haskell to WebAssembly compiler based on GHC that compiles Haskell source files or Cabal executables to WebAssembly plus Java… | 10 | 1947 | abandoned |
| microsoft/microsoft-pdb Microsoft's reference source code and documentation for the PDB (Program Database) debug symbol file format, intended to help alternative c… | 10 | 1935 | abandoned |
| raspberrypi/tools A repository of prebuilt ARM cross-compilation toolchains for building software targeting Raspberry Pi boards. The project is officially de… | 32 | 1907 | abandoned |
| pypyjs/pypyjs PyPy.js is the PyPy Python interpreter compiled to JavaScript via an experimental emscripten/asm.js backend, allowing Python to run in the … | 23 | 1846 | abandoned |
| asm-js/validator A reference validator for asm.js, the highly optimizable subset of JavaScript targeted by compilers like Emscripten. It checks JavaScript s… | 32 | 1769 | abandoned |
| tensorflow/mlir MLIR (Multi-Level Intermediate Representation) is a compiler infrastructure for building reusable and extensible compiler toolchains, origi… | 10 | 1769 | abandoned |
| NNVM NNVM was a computation-graph intermediate representation and compiler front-end for deep learning frameworks, serving as the graph-level op… | 10 | 1649 | abandoned |
| tildeio/htmlbars HTMLBars is a variant of Handlebars that compiles templates into DOM document fragments instead of string buffers, enabling helpers that ma… | 10 | 1625 | abandoned |
| microsoft/Pyjion Pyjion is a just-in-time (JIT) compilation library for CPython built on the .NET CoreCLR JIT compiler, exposed through a C API that allows … | 10 | 1594 | abandoned |
| ElixirScript ElixirScript is a compiler that converts Elixir code into JavaScript by transforming the Elixir AST into a JavaScript ESTree AST. It integr… | 23 | 1565 | abandoned |
| nbp/holyjit HolyJit is a generic-purpose Just-In-Time compiler library for Rust that extends the Rust compiler (as a rustc driver) to convert annotated… | 32 | 1552 | abandoned |
| cevek/ttypescript ttypescript is a drop-in wrapper around the TypeScript compiler that enables custom AST transformers to be declared in tsconfig. and run vi… | 23 | 1534 | abandoned |
| dotnet/llilc LLILC is an LLVM-based compiler for .NET Core that compiles MSIL bytecode to LLVM-supported platforms, serving as a JIT for CoreCLR and an … | 10 | 1513 | abandoned |
| tdenniston/bish Bish is a lightweight programming language with modern syntax that compiles down to Bash, making shell scripts more comfortable to write wh… | 32 | 1489 | abandoned |
| owenthereal/godzilla Godzilla is an ES2015-to-Go source code transpiler and runtime intended as a near drop-in replacement for Node.js. It compiles JavaScript t… | 32 | 1475 | abandoned |
| valderman/haste-compiler Haste is a GHC-based compiler that translates Haskell programs into JavaScript, supporting most GHC extensions and standard Haskell librari… | 23 | 1473 | abandoned |
| JSX JSX is a statically-typed, class-based programming language developed at DeNA that compiles to JavaScript, aiming to be faster, safer, and … | 32 | 1471 | abandoned |
| SaptakBhoumik/Peregrine Peregrine is a compiled systems programming language written in C++ that aims to combine Python-like syntax with C-like performance, compil… | 32 | 1434 | abandoned |
| beeware/batavia Batavia is a Python virtual machine implemented in JavaScript, allowing Python 3.5+ bytecode to run in the browser. It is an early alpha pr… | 10 | 1376 | abandoned |
| NervanaSystems/ngraph nGraph is a C++ deep learning graph compiler that accelerates neural network workloads from frameworks like TensorFlow, ONNX, MXNet, and Py… | 10 | 1344 | abandoned |
| alongubkin/spider Spider is a programming language that compiles to JavaScript (ES5 and ES6), combining ideas from Go, Swift, Python, C#, and CoffeeScript. I… | 32 | 1325 | abandoned |
| matthewmueller/joy Joy is a Go-to-JavaScript compiler that translates idiomatic Go into concise JavaScript runnable in every browser, with a CLI for compiling… | 23 | 1317 | abandoned |
| sakra/cotire Cotire is a CMake module that speeds up C/C++ builds by automatically setting up precompiled headers and single compilation unit (unity) bu… | 10 | 1296 | abandoned |
| faylang/fay Fay is a statically typed, lazy, purely functional proper subset of Haskell that compiles to JavaScript. It offers a trivial JavaScript FFI… | 32 | 1285 | abandoned |
| google/schism Schism is an experimental self-hosting compiler that compiles a subset of R6RS Scheme to WebAssembly, allowing Scheme programs to run in br… | 10 | 1276 | abandoned |
| go-llvm/llgo llgo is a Go compiler frontend built on LLVM, written in Go, aiming for gccgo-compatible command-line behavior. The project has moved to ll… | 10 | 1250 | abandoned |
| xamarin/XobotOS XobotOS is a Xamarin research project that semi-automatically ported Android 4.0 from Java/Dalvik to C#, exploring performance and memory b… | 10 | 1242 | abandoned |
| ReadyTalk/avian Avian is a lightweight Java virtual machine and class library written in C++ that provides a useful subset of Java's features, including JI… | 32 | 1238 | abandoned |
| twitter/rsc Rsc (Reasonable Scala compiler) is an experimental reimplementation of the Scala compiler focused on compilation speed, developed by Twitte… | 32 | 1232 | abandoned |
| albrow/fo Fo (Functional Go) is an experimental programming language that extends Go with generics, including generic named types, functions, and met… | 10 | 1223 | abandoned |
| esnext/es6-module-transpiler An experimental JavaScript compiler that transpiles ES6 module syntax into AMD or CommonJS modules, usable as a CLI, library, or via build … | 10 | 1200 | abandoned |
| michaeleisel/zld zld is a fork of Apple's open-source linker (ld) optimized to make the linking phase of large projects substantially faster, intended as a … | 10 | 1192 | abandoned |
| eholk/harlan Harlan is a small domain-specific language implemented in Scheme for programming GPUs, compiled to OpenCL. It serves primarily as a researc… | 32 | 1191 | abandoned |
| mbebenita/LLJS LLJS is a typed dialect of JavaScript with a C-like type system and manual memory management, compiled to plain JavaScript via the ljc comp… | 32 | 1177 | abandoned |
| wende/elchemy Elchemy is a transpiler that lets you write Elixir code using Elm's statically-typed syntax, compiling to idiomatic, readable Elixir that r… | 10 | 1150 | abandoned |
| archseer/enigma Enigma is an implementation of the Erlang VM (BEAM) written in Rust, aiming to run OTP 22+ and Elixir code unchanged. It is a learning-orie… | 32 | 1093 | abandoned |
| jterrace/js.js js.js is a JavaScript interpreter written in JavaScript, created by compiling SpiderMonkey to LLVM and translating it with Emscripten. It e… | 32 | 1081 | abandoned |
| NervanaSystems/maxas MaxAs is an assembler for NVIDIA Maxwell GPU architecture that assembles SASS (Shader Assembly) instructions, written in Perl. It enables l… | 10 | 1074 | abandoned |
| polarphp/polarphp polarphp is an alternative compiler and runtime for the PHP programming language, rewrapping the Zend VM and adding a new runtime library (… | 32 | 1037 | abandoned |
| kitlang/kit Kit is a statically typed programming language that compiles to C, offering modern features like type inference, algebraic data types, patt… | 32 | 1033 | abandoned |
| topazproject/topaz Topaz is an implementation of the Ruby programming language written in Python using the RPython toolchain from PyPy. It compiles to a nativ… | 32 | 1007 | abandoned |
| jart/cosmopolitan Cosmopolitan Libc is a C/C++ library and toolchain that makes C a build-once run-anywhere language by producing polyglot executables that r… | 79 | 21396 | active |
| tinygo-org/tinygo TinyGo is an alternative Go compiler based on LLVM designed for small places such as microcontrollers, WebAssembly (WASM/WASI), and compact… | 92 | 17801 | active |
| web-infra-dev/rspack Rspack is a fast, Rust-based JavaScript module bundler for the web that modernizes the webpack API to serve as a drop-in replacement. It of… | 94 | 12935 | active |
| Unison Unison is a statically-typed functional programming language with type inference, an effect (abilities) system, and content-addressed code … | 99 | 6756 | active |
| brython-dev/brython Brython is an implementation of Python 3 that runs entirely in the web browser, loaded as a JavaScript file and executing Python code embed… | 88 | 6609 | active |
| Imba Imba is a full-stack programming language that compiles to JavaScript and ships with a built-in declarative DOM framework for building web … | 68 | 6512 | active |
| AidLux (AidLearning) AidLux (originally AidLearning) is an AIoT development platform that runs a native Ubuntu Linux environment with GUI, deep learning tooling… | 63 | 5812 | active |
| Slang Slang is a shading language and compiler for building large, modular, high-performance GPU shader codebases. It compiles to D3D12, Vulkan, … | 95 | 5752 | active |
| Rocq Prover The Rocq Prover (formerly Coq) is an interactive theorem prover and proof assistant based on the Calculus of Inductive Constructions, provi… | 88 | 5591 | stable |
| ohmjs/ohm Ohm is a parsing toolkit consisting of a JavaScript library and a domain-specific language based on parsing expression grammars (PEGs). It … | 74 | 5550 | active |
| OSS CAD Suite Yosys is an open-source framework for Verilog/SystemVerilog RTL synthesis, converting hardware description code into gate-level netlists fo… | 100 | 4826 | stable |
| Chisel Chisel is an open-source hardware description language (HDL) embedded in Scala for describing digital electronics at the register-transfer … | 98 | 4807 | stable |
| trunk-rs/trunk Trunk is a build tool and bundler for Rust WASM web applications, driven by a source HTML file with optional configuration. It bundles WASM… | 77 | 4398 | active |
| mint-lang/mint Mint is a programming language that compiles to JavaScript, designed specifically for building front-end web applications. It provides buil… | 93 | 4270 | active |
| swiftlang/swift-syntax A set of Swift libraries for parsing, inspecting, generating, and transforming Swift source code via a source-accurate syntax tree (SwiftSy… | 94 | 3710 | stable |
| TypeStrong/ts-loader ts-loader is the official TypeScript loader for webpack, compiling .ts and .tsx files during webpack builds. It integrates the TypeScript c… | 88 | 3481 | active |
| Checked C Checked C is an extension to the C programming language that adds bounds checking and improved type safety through opt-in annotations, impl… | 23 | 3263 | active |
| luminal-ai/luminal Luminal is a high-performance general-purpose ML inference compiler written in Rust that lowers models to a minimal 15-op dataflow IR and c… | 77 | 3026 | active |
| Keystone Assembler Engine Keystone is a lightweight multi-platform, multi-architecture assembler framework implemented in C/C++ with bindings for many languages. It … | 67 | 2649 | active |
| tracel-ai/cubecl CubeCL is a Rust language extension, JIT compiler, and runtime set for writing high-performance GPU compute kernels in plain Rust. A single… | 88 | 2453 | active |
| RetDec RetDec is a retargetable machine-code decompiler based on LLVM that converts native binaries back into readable C or Python-like source cod… | 57 | 8640 | maintenance |
| endrazine/wcc The Witchcraft Compiler Collection (WCC) is a set of compilation tools for performing binary manipulation on ELF executables across POSIX p… | 83 | 2014 | active |
| JesusFreke/smali smali/baksmali is an assembler and disassembler for the dex bytecode format used by Android's Dalvik VM. It converts dex files to human-rea… | 10 | 6625 | maintenance |
| revng rev.ng is an open-source binary analysis framework and decompiler built on LLVM and QEMU, supporting over 20 CPU architectures. It automati… | 75 | 1739 | active |
| SVF-tools/SVF SVF is a C++ static analysis framework built on LLVM that provides scalable and precise value-flow analysis and pointer analysis for source… | 83 | 1714 | active |
| google/j2objc J2ObjC is Google's open-source command-line translator that converts Java source code into Objective-C for iOS apps, with a supporting runt… | 67 | 6033 | maintenance |
| clash-lang/clash-compiler Clash is a functional hardware description language based on Haskell, with a compiler that transforms high-level descriptions into synthesi… | 92 | 1619 | active |
| IKVM IKVM is an implementation of Java for the .NET platform, providing a JVM implemented in .NET along with a bytecode-to-IL converter. It lets… | 100 | 1573 | active |
| sql-machine-learning/sqlflow SQLFlow is a compiler that extends SQL with AI-oriented syntax (training, prediction, evaluation, explanation, and mathematical programming… | 23 | 5190 | maintenance |
| ZacSweers/metro Metro is a compile-time dependency injection framework for Kotlin Multiplatform, implemented as a Kotlin compiler plugin with FIR/IR code g… | 84 | 1407 | active |
| Noir Noir is a Rust-inspired domain-specific language for writing privacy-preserving programs that compile to zero-knowledge (SNARK) proofs via … | 96 | 1402 | active |
| toitlang/toit The Toit language implementation, consisting of a compiler, virtual machine, and standard libraries for running a modern high-level languag… | 97 | 1394 | active |
| TheRock TheRock is AMD's open-source build and release system for the ROCm software stack, replacing the legacy monolithic ROCm release process wit… | 89 | 1394 | active |
| skvadrik/re2c re2c is a free and open-source lexer generator that compiles regular expressions into fast, direct-coded lexers for many languages includin… | 91 | 1312 | stable |
| javacc/javacc JavaCC is a parser generator that reads grammar specifications and generates recursive-descent parsers in Java, C++, or C#. It includes sup… | 32 | 1275 | stable |
| zaach/jison Jison is a parser generator for JavaScript with an API similar to Bison, taking JSON or Bison-style grammar definitions and generating bott… | 32 | 4378 | maintenance |
| typetools/checker-framework The Checker Framework is a framework for pluggable type-checking in Java, enhancing Java's type system to detect and prevent bugs like null… | 98 | 1151 | stable |
| B-Lang-org/bsc The Bluespec Compiler (BSC) is a compiler, simulator, and toolchain for the Bluespec Hardware Description Language, supporting both Bluespe… | 86 | 1144 | 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| nok/sklearn-porter A Python library that transpiles trained scikit-learn estimators into source code for C, Go, Java, JavaScript, PHP, and Ruby. It targets em… | 67 | 1303 | maintenance |
| microsoft/devicescript DeviceScript is a TypeScript-based language and toolchain from Microsoft Research for programming low-resource microcontrollers like ESP32 … | 10 | 3446 | experimental |
| google/rune Rune is an experimental, Python-inspired systems programming language from Google that compiles to C and emphasizes memory safety and const… | 70 | 1935 | experimental |
| google-research/dex-lang Dex is an experimental research programming language from Google Research for typed, functional array processing in the Haskell/ML family. … | 56 | 1704 | experimental |
| JuliaPoo/Artfuscator Artfuscator is a novelty C compiler built on ELVM that compiles C programs into a binary whose entire control flow graph renders as a chose… | 32 | 1105 | experimental |
← prev page 5 / 5