awesome-repositories.com
Blog
awesome-repositories.com

Descubre los mejores repositorios open-source con nuestra búsqueda potenciada por IA.

ExplorarBúsquedas curadasAlternativas open-sourceSoftware autohospedableBlogMapa del sitio
ProyectoAcerca deCómo clasificamosPrensaServidor MCP
Aviso legalPrivacidadTérminos
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
WebAssembly avatar

WebAssembly/binaryen

0
View on GitHub↗
8,354 estrellas·837 forks·WebAssembly·apache-2.0·3 vistas

Binaryen

Binaryen is a WebAssembly compiler toolchain and optimizer designed to transform, validate, and shrink binary modules. It provides a comprehensive intermediate representation framework that converts binary code into a single-assignment form to enable advanced program analysis and code transformation.

The project includes a specialized transformation engine that applies iterative optimization passes to increase execution speed and reduce binary size. Additionally, it functions as a transpiler that translates WebAssembly binary modules into executable JavaScript for environments that lack native runtime support.

Its broader capabilities cover binary analysis, including assembly and disassembly, and the structural modification of modules through import minification and dead-code elimination. The toolset also supports quality assurance via random module generation, fuzzer-targeted test cases, and binary testcase reduction to preserve specific execution properties or crashes.

Features

  • Intermediate Representations - Provides a comprehensive intermediate representation framework that converts binary code into a single-assignment form.
  • Source-to-JavaScript Transpilers - Translates WebAssembly binary modules into executable JavaScript code for environments lacking native runtime support.
  • WebAssembly Compilation - Functions as a complete compiler toolchain for optimizing, transforming, and validating WebAssembly binary modules.
  • Binary Format Parsers - Parses binary formats to convert them into internal representations for manipulation and re-emission.
  • Binary Compilation Toolchains - Modifies the structure and contents of binary files to enable custom transformations or toolchain integration.
  • Stack Signature Analysis - Calculates and composes stack signatures to determine if instruction sequences are compatible or reachable.
  • Binary Assembly - Converts human-readable text formats into binary data for machine execution.
  • Binary Disassembly - Converts binary format data into human-readable text for analysis and debugging.
  • Binary Module Generation - Builds binary files by defining functions, types, imports, exports, and static memory data.
  • Binary Parsing - Implements raw binary parsing to convert WebAssembly modules into internal data structures for manipulation.
  • Constant Value Inference - Performs whole-program analysis to determine constant values and refine types across the entire module.
  • Control Flow Synthesis - Creates blocks, loops, and conditional statements to manage the execution paths of a program.
  • JavaScript Code Generation - Converts binary functions into valid JavaScript source code ensuring compatibility with scripting expression rules.
  • WebAssembly - Translates WebAssembly binary modules into executable JavaScript for environments lacking native runtime support.
  • Monomorphization - Creates specialized duplicates of functions based on call-site constants to eliminate runtime overhead.
  • WebAssembly - Implements a comprehensive toolset for optimizing and managing portable WebAssembly binary code.
  • Toolchain Development Kits - Provides a framework for building custom tools to parse, modify, and generate WebAssembly binary and text formats.
  • Side-Effect Analysis - Computes side effects for each function to allow the optimizer to move code past non-state-modifying calls.
  • Structured Control Flow Conversion - Transforms arbitrary graphs of basic blocks and branches into valid structured execution paths.
  • Static Single Assignment Analysis - Transforms code into single-assignment form so each variable has one assignment to simplify optimization.
  • WebAssembly Binary Analysis - Provides capabilities to convert binary modules into human-readable text and analyze stack signatures for debugging.
  • WebAssembly Binary Manipulators - Ships a utility for assembling, disassembling, and manipulating WebAssembly files and their internal structural representations.
  • WebAssembly IR Frameworks - Provides a comprehensive intermediate representation framework that converts binary code into single-assignment form for program analysis.
  • WebAssembly to JavaScript Transpilation - Translates WebAssembly binary modules into executable JavaScript for environments lacking native runtime support.
  • Structured Control-Flow Reconstruction - Converts arbitrary graphs of basic blocks and branches into valid structured execution paths for binary emission.
  • IR Control Flow Rewriting - Flattens the intermediate representation and regenerates the control flow graph to improve size and performance.
  • Binary Specification Validation - Checks constructed modules for structural or logical errors to ensure adherence to the WebAssembly specification.
  • Binary Optimizers - Provides a transformation engine that applies optimization passes to increase execution speed and reduce WebAssembly binary size.
  • Dead Code Elimination - Prunes unused exports and functions through reachability analysis of internal entities and external references.
  • Automatic Export Removal - Deletes exported functions or globals from a module to reduce binary size after merging logic.
  • Identifier Minification - Renames imports and exports to shorter identifiers and outputs the mapping in JSON format to reduce size.
  • Binary-to-Source Mapping - Provides source map management to link compiled expressions back to original source code locations.
  • Binary Size Reduction - Shrinks a binary file into a smaller version that preserves a specific property such as a virtual machine crash.
  • Behavior-Preserving Binary Reduction - Shrinks large binary files into minimal versions that preserve specific execution properties or crashes.
  • Compile-Time Expression Evaluation - Executes parts of functions during the build process to compute results at compile-time.
  • Constant Inference - Analyzes the entire module to determine constant values and refine types across all functions and globals.
  • Fixed-Point Optimization Convergence - Runs a suite of optimization passes in a loop until the binary size reaches a stable fixed point.
  • Fixed-Point Optimization Passes - Runs a suite of transformation passes in a loop until the binary size or performance reaches a stable state.
  • Partial Inlining - Inlines initial conditional branches of functions to reduce call overhead without inlining the entire body.
  • Trap Assumption Analysis - Removes code on paths leading to traps by assuming they will not occur during execution.
  • WebAssembly Module Structural Definitions - Allows for the addition and removal of functions, global variables, imports, and exports to define the binary interface.
  • WebAssembly Fuzzing - Generates random modules and shrinks failing test cases to verify WebAssembly runtime stability.
  • Module Mutation Testing - Generates variations of a module using a random seed to verify runtime stability.
  • Random Module Generation - Creates random test cases by converting arbitrary byte streams into valid modules to verify stability.
  • Test Case Generators - Directs a fuzzer to target specific binary or text formats to discover edge cases.
  • Test Case Shrinking - Shrinks a binary module to its smallest size while preserving specific behaviors or outputs.
  • Binary Module Linking - Combines several binary files into a single module by connecting imports to exports and resolving name conflicts.
  • Compilers and Toolchains - Compiler infrastructure library for optimizing and compiling WebAssembly.
  • Frameworks and Tooling - Compiler infrastructure for optimizing WebAssembly binary size.

Historial de estrellas

Gráfico del historial de estrellas de webassembly/binaryenGráfico del historial de estrellas de webassembly/binaryen

Búsqueda con IA

Explora más repositorios increíbles

Describe lo que necesitas en lenguaje sencillo: la IA clasifica miles de proyectos open-source curados por relevancia.

Start searching with AI

Preguntas frecuentes

¿Qué hace webassembly/binaryen?

Binaryen is a WebAssembly compiler toolchain and optimizer designed to transform, validate, and shrink binary modules. It provides a comprehensive intermediate representation framework that converts binary code into a single-assignment form to enable advanced program analysis and code transformation.

¿Cuáles son las características principales de webassembly/binaryen?

Las características principales de webassembly/binaryen son: Intermediate Representations, Source-to-JavaScript Transpilers, WebAssembly Compilation, Binary Format Parsers, Binary Compilation Toolchains, Stack Signature Analysis, Binary Assembly, Binary Disassembly.

¿Qué alternativas de código abierto existen para webassembly/binaryen?

Las alternativas de código abierto para webassembly/binaryen incluyen: webassembly/wabt — The WebAssembly Binary Toolkit is a suite of tools for inspecting, validating, and transforming WebAssembly modules… tinygo-org/tinygo — TinyGo is a specialized compiler and development toolkit designed to bring the Go programming language to… lief-project/lief — LIEF is a framework for parsing, modifying, and analyzing executable binary formats and system shared caches across… mamedev/mame — MAME is a vintage hardware emulation platform designed to recreate the circuitry of arcade games, computers, and… wasmerio/wasmer — Wasmer is a high-performance runtime engine designed to execute sandboxed WebAssembly modules across server-side,… swiftlang/swift-evolution — Swift Evolution serves as the central governance and design platform for the Swift programming language. It provides a…

Alternativas open-source a Binaryen

Proyectos open-source similares, clasificados según cuántas características comparten con Binaryen.
  • webassembly/wabtAvatar de WebAssembly

    WebAssembly/wabt

    8,038Ver en GitHub↗

    The WebAssembly Binary Toolkit is a suite of tools for inspecting, validating, and transforming WebAssembly modules between binary and human-readable representations. It includes a stack-based interpreter for executing modules and a transpiler that converts binary files into C source code and headers. The toolkit provides utilities for assembling human-readable text into binary modules and disassembling binary files back into text. It features a text formatter for normalizing definitions into a canonical flat representation and supports the conversion of binaries into S-expression formats. T

    C++
    Ver en GitHub↗8,038
  • tinygo-org/tinygoAvatar de tinygo-org

    tinygo-org/tinygo

    17,529Ver en GitHub↗

    TinyGo is a specialized compiler and development toolkit designed to bring the Go programming language to resource-constrained microcontrollers and WebAssembly environments. It provides a bare-metal runtime environment that enables high-level code execution without the need for a traditional operating system, utilizing an LLVM-based backend to generate efficient machine instructions. The project distinguishes itself through aggressive optimization techniques tailored for small hardware, including a static memory allocation strategy and whole-program dead code elimination that significantly re

    Goadafruitarduinoarm
    Ver en GitHub↗17,529
  • lief-project/liefAvatar de lief-project

    lief-project/LIEF

    5,462Ver en GitHub↗

    LIEF is a framework for parsing, modifying, and analyzing executable binary formats and system shared caches across multiple platforms. It serves as a cross-platform library for the programmatic manipulation of ELF, PE, and MachO binary files. The project provides tools for altering the internal structure and sections of executable files to change program behavior. It also includes a dedicated parser for recovering individual dynamic libraries from combined system shared caches. The toolset covers binary executable analysis, machine code disassembly, and the extraction of debug metadata and

    C++
    Ver en GitHub↗5,462
  • mamedev/mameAvatar de mamedev

    mamedev/mame

    9,929Ver en GitHub↗

    MAME is a vintage hardware emulation platform designed to recreate the circuitry of arcade games, computers, and consoles to run original software on modern devices. It functions as a retro gaming preservation framework for managing, verifying, and archiving ROM sets and disk images to ensure long-term software accessibility. The project features a system debugging tool for inspecting emulated memory, CPU registers, and execution flow via breakpoints and disassembly. It also includes a Lua-based automation layer that exposes core system state and hardware controls for custom behavior and anal

    C++
    Ver en GitHub↗9,929
  • Ver las 30 alternativas a Binaryen→