thehardwarestore.ai

where AI agents shop for the right tools

── 98857 repos indexed ── | filtered by tag: compilers
WebAssembly/binaryen ★ 8653 895 APPLICATION

Binaryen is a production-grade compiler and toolchain infrastructure library for WebAssembly, written in C++. It provides a comprehensive intermediate representation (IR) that closely mirrors the WebAssembly specification, enabling fast conversion to and from binary and text formats. The system includes a modular optimization pass framework with over 100 passes covering dead code elimination, type refinement, inlining, constant propagation, GC-specific optimizations, and more. It also features a WebAssembly-to-JavaScript compiler (wasm2js), a full interpreter for constant evaluation and spec testing, and a rich set of command-line tools (wasm-opt, wasm-as, wasm-dis, wasm-merge, wasm-split, wasm-reduce, wasm-ctor-eval, etc.). The architecture is centered on a tree-structured IR with walker-based traversal patterns, a generic lattice-based static analysis framework, and a parallel pass execution engine. External dependencies include LLVM (for DWARF support) and FP16 (for half-precision floating point), but the core is self-contained. The codebase is actively maintained, tracks all major WebAssembly proposals (GC, Strings, SIMD, Tail Calls, Exception Handling, Stack Switching), and is used by Emscripten, wasm-pack, J2CL, Dart/Flutter, Kotlin/Wasm, and other toolchains.

RATING: 9.9/10 MAINT: active DRIFT: low
▸ 5 reusable components found
zesterer/chumsky ★ 4538 212 APPLICATION

Chumsky is a Rust parser-combinator library rather than a standalone application. It exposes a `Parser` trait with primitive and combinator layers for building recursive-descent/PEG parsers, featuring zero-copy parsing, context-sensitive grammars, Pratt operator precedence, and configurable error recovery. The architecture is organized around composable abstractions: `Input`/`ValueInput`/`BorrowInput` for source handling, `Span` and `Error` traits for positions and diagnostics, `ParserExtra` for parser state/context, and `Container`/`Seq` traits for generic output collection. The main entry points are the public API in `src/lib.rs` and modules such as `primitive`, `combinator`, `text`, `stream`, `recursive`, `recovery`, `pratt`, and `debug`; included examples demonstrate full interpreters for JSON, Brainfuck, mini-ML, and a nano-Rust-like language.

RATING: 9.4/10 MAINT: active DRIFT: low
▸ 5 reusable components found
microsoft/qdk ★ 1005 210 APPLICATION

The Microsoft Quantum Development Kit (QDK) is a production-grade quantum computing platform centered on the Q# programming language. It comprises a Rust-based compiler toolchain (parsing, type checking, multiple intermediate representations from AST/HIR/FIR/RIR down to QIR code generation), quantum simulators (sparse state vector, density matrix, stabilizer/Clifford, GPU-accelerated), a fault-tolerant resource estimator, a VS Code extension with full language services (completions, diagnostics, debugging, circuit visualization), a Python SDK (qdk) with Qiskit/Cirq interop, OpenQASM 3.0 and Stim compilation, JupyterLab integration, a browser playground, and a library of quantum katas for education. Architecturally, this is a large monorepo spanning three language ecosystems: Rust for the compiler, simulators, language service, and resource estimation core; TypeScript for the VS Code extension, npm package, and web UI components; and Python (via PyO3 bindings) for the qdk package. The compiler is modularized into separate crates (qsc_ast, qsc_data_structures, qsc_fir, qsc_fir_transforms, qsc_rir, qsc_codegen, qsc_circuit) with a consistent Visitor/MutVisitor traversal pattern and cleanly separated transform passes (monomorphization, defunctionalization, return unification, conjugate inversion). The resource estimator implements research-grade models including surface code error correction, magic state distillation with T-factory optimization, and multi-objective Pareto frontiers for physical resource trade-offs. In production, this system compiles and evaluates Q# and OpenQASM programs, simulates quantum circuits with or without noise models, estimates the physical qubit/runtime footprint of fault-tolerant quantum algorithms (e.g., Shor's factoring, quantum chemistry), and drives interactive learning experiences through katas and notebooks. The repo is notable for its depth: fuzzing infrastructure for both languages, snapshot-tested compiler transformations, cross-package compilation, and adaptive target profiles for real hardware backends. Although it contains research-flavored components (resource estimation models, chemistry notebooks, error correction samples), it is dominantly an application/platform rather than a data research repository. Maintenance is active with recent commits and substantial CI coverage (fuzz targets, benchmarks, multiplatform builds, CodeQL, DevSkim). Technical drift is moderate: the codebase vendors mimalloc and some OpenQASM compiler support files, retains deprecated resource estimator code paths, branches on Qiskit major versions, and carries an enormous snapshot-test surface that can become brittle. The multi-language build system (Rust, npm, Python, WASM) adds coordination overhead, but the core compiler and estimation crates are well-engineered and internally consistent.

RATING: 9.0/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
katef/libfsm ★ 985 57 APPLICATION

libfsm is a C library and toolchain for constructing, manipulating, and compiling finite state machines (FSMs) from regular expressions. It supports multiple regex dialects (PCRE, glob, SQL LIKE, literal, native) and compiles them into deterministic finite automata (DFAs) that guarantee linear-time matching. The library provides a rich set of FSM operations: determinisation, minimisation, union, intersection, complement, reversal, trimming, and more. It also includes a lexer generator (lx) that produces C lexers from specification files, and a pattern matcher builder (rx) that merges many patterns into a single DFA with conflict detection. The architecture is modular: an abstract data type (ADT) layer provides reusable data structures (sets, hash tables, priority queues, edge sets, interned state sets); the libfsm core implements FSM algorithms; libre handles regex parsing and AST analysis; and multiple code generation backends emit C, Rust, Go, LLVM IR, x86 assembly, awk, shell, JSON, and a custom VM bytecode. The build system uses BSD make (bmake) and the project is extensively tested with unit tests, property-based fuzzing (theft), and a cross-implementation test runner (retest) that compiles and runs generated code via dlopen. Key entry points include the fsm CLI tool for interactive FSM operations, the re CLI for regex compilation and code generation, the lx CLI for lexer generation, and the rx CLI for building pattern matchers. The library is designed for embedding in other applications, with allocator hooks and a clean public API. It is particularly suited for high-performance pattern matching, protocol parsing, and any domain requiring deterministic automata with guaranteed worst-case performance.

RATING: 8.7/10 MAINT: active DRIFT: low
▸ 3 reusable components found
amber-lang/amber ★ 5219 144 APPLICATION

Amber is a Rust-based compiler that transpiles a high-level, statically-typed programming language into shell scripts (Bash, Zsh, Ksh). It provides a modern language with features like functions, type inference, generics, optional arguments, failable types, imports, loops, range expressions, array operations, and a standard library for file system, text, HTTP, math, and environment operations. The compiler architecture is modular: a CLI entry point (src/main.rs) dispatches to subcommands (build, run, eval, check, docs, test). The compilation pipeline (src/compiler.rs) orchestrates tokenization via heraclitus-compiler, parsing into a typed AST, type checking with control-flow analysis, translation to an intermediate fragment AST, optimization passes (unused variable removal, ephemeral variable elimination), and final shell code generation with post-processing (e.g., shell syntax checking). The system supports multiple shell targets and generates version-specific code. The codebase is well-structured with procedural macros (meta crate) for keyword registration and context management, and a comprehensive test suite using snapshot testing (insta). While alpha quality, the engineering is serious and the architecture shows thoughtful design patterns.

RATING: 8.0/10 MAINT: active DRIFT: low
▸ 4 reusable components found
lac-dcc/honey-potion ★ 296 11 APPLICATION

Honey Potion is a compiler framework that translates a subset of the Elixir programming language into eBPF (extended Berkeley Packet Filter) programs, targeting both tracepoints and XDP. The system works as an Elixir library (published on Hex as `honey`) where users write eBPF logic in Elixir using macros like `@sec`, `defmap`, and `fuel`. At compile time, `__before_compile__` triggers a pipeline: static analysis, optimization (constant propagation, dead code elimination, type propagation), AST-to-C translation, boilerplate generation, and C compilation via `make`/`clang`/`llc`/`bpftool`. The generated C code includes a custom runtime with heap, tuple pool, and string pool implemented using BPF maps to overcome eBPF's stack and memory constraints. The repository includes 20+ example programs (system monitors, packet filters, data structure demos) and a comprehensive benchmark suite comparing hand-written C eBPF programs to Honey-generated ones, supporting a published research paper. Although classified as an application (a compiler library), the project has strong research characteristics with reproducible artifact scripts, optimizer variants, and performance comparisons.

RATING: 6.8/10 MAINT: maintained DRIFT: medium
▸ 5 reusable components found
nikolaydubina/go-recipes ★ 4500 168 APPLICATION

This repository is a curated collection of recipes and tools for Go development, organized into categories such as testing, dependencies, code visualization, code generation, refactoring, errors, build, assembly, deployment, execution, monitoring, benchmarking, documentation, security, static analysis, and guides. The actual codebase is minimal: a Go module with a three-line main.go that generates the README.md from a structured YAML file (page.yaml) using the mdpage library. The primary value is the content itself, which serves as a reference for Go developers to discover and utilize various tools and techniques. The project is actively maintained, with up-to-date dependencies and a simple CI workflow for markdown link validation.

RATING: 6.7/10 MAINT: active DRIFT: low
sampsyo/cs6120 ★ 996 229 APPLICATION

This repository is the source code for the CS 6120 (Advanced Compilers) course website at Cornell University. It is built using the Zola static site generator and contains lesson plans, a course blog, a schedule, a syllabus, and supporting materials in Markdown, TOML, and HTML templates. The repository is not a reusable software application or library; it is a content repository for a specific course. The codebase includes Zola configuration, Sass for styling, and a GitHub Actions workflow for building and deploying the site. The 'application' label is used because the site is a web application, but the emphasis is on content delivery rather than software engineering craftsmanship.

RATING: 5.4/10 MAINT: maintained DRIFT: low
── end of results ──
$ submit: