Repolode
WebAssembly

WebAssembly/binaryen

Biblioteca de compilación y optimización en C++ para WebAssembly, con la herramienta wasm-opt y una versión para JavaScript (binaryen.js).

Estrellas
8,666
Forks
899
Issues abiertos
580
Último commit
hace 8 horas

¿Qué es?

Binaryen es una biblioteca de infraestructura para compiladores y cadenas de herramientas de WebAssembly, escrita en C++. Ofrece una API de C sencilla y una interfaz de JavaScript, y acepta entradas tanto en un formato similar a WebAssembly como en forma de grafo de flujo de control general. Su IR interna está diseñada para compilar rápidamente a WebAssembly y ejecutar pasadas de optimización en paralelo.

El optimizador incluye numerosas pasadas para reducir el tamaño del código y mejorar la velocidad, con énfasis en transformaciones específicas de WebAssembly, como la asignación de registros locales, la eliminación de código muerto, el inlining y el empaquetado de segmentos de datos. La herramienta principal, wasm-opt, ejecuta estas pasadas en un archivo wasm; otras herramientas permiten ensamblar y desensamblar wasm, convertir wasm a JavaScript con wasm2js, combinar módulos, reducir casos de prueba e interpretar wasm.

Varias cadenas de herramientas usan Binaryen como componente, entre ellas Emscripten, wasm-pack, Kotlin/Wasm y la compilación web de Flutter de Dart. También se usa como biblioteca en AssemblyScript y Grain.

Funciones clave

  • 01Optimizador con numerosas pasadas específicas de WebAssembly para reducir el tamaño del código y mejorar la velocidad
  • 02Herramienta de línea de comandos wasm-opt para optimizar y transformar archivos wasm
  • 03Compilador wasm2js que convierte WebAssembly en módulos JavaScript ES6
  • 04API de C sencilla y binaryen.js para crear y optimizar módulos mediante código
  • 05Utilidades wasm-merge, wasm-metadce y wasm-reduce para agrupar, depurar y reducir archivos wasm

Casos de uso

  • Reducir el tamaño y mejorar la velocidad del código WebAssembly generado por cadenas de herramientas de C, C++, Rust o Kotlin
  • Compilar WebAssembly a JavaScript para entornos sin compatibilidad nativa con wasm
  • Combinar varios módulos wasm en un solo archivo antes de distribuirlo
  • Crear módulos WebAssembly mediante programación desde JavaScript o C

Antes de usarlo

  • La salida de texto predeterminada no siempre es texto WebAssembly válido. Para obtener texto válido, usa --generate-stack-ir --print-stack-ir.

Temas

Preguntas frecuentes

¿Qué es binaryen?
Biblioteca de compilación y optimización en C++ para WebAssembly, con la herramienta wasm-opt y una versión para JavaScript (binaryen.js). Binaryen es una biblioteca de infraestructura para compiladores y cadenas de herramientas de WebAssembly, escrita en C++. Ofrece una API de C sencilla y una interfaz de JavaScript, y acepta entradas tanto en un formato similar a WebAssembly como en forma de grafo de flujo de control general. Su IR interna está diseñada para compilar rápidamente a WebAssembly y ejecutar pasadas de optimización en paralelo.
¿binaryen es gratuito? ¿Qué licencia tiene?
binaryen es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿binaryen sigue mantenido?
Mantenimiento activo. El último commit de binaryen fue el 21 oct 2026.
¿Para qué puedo usar binaryen?
Reducir el tamaño y mejorar la velocidad del código WebAssembly generado por cadenas de herramientas de C, C++, Rust o Kotlin Compilar WebAssembly a JavaScript para entornos sin compatibilidad nativa con wasm Combinar varios módulos wasm en un solo archivo antes de distribuirlo Crear módulos WebAssembly mediante programación desde JavaScript o C
¿Dónde consigo binaryen?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/WebAssembly/binaryen

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados