Emscripten es un compilador basado en LLVM / Clang que compila código fuente C y C ++ en WebAssembly [3] (o en un subconjunto de JavaScript conocido como asm.js , [4] su objetivo de compilación original antes de la llegada de WebAssembly en 2017), principalmente para su ejecución en navegadores web .
Autor (es) original (es) | Alon Zakai |
---|---|
Lanzamiento estable | 2.0.13 / 29 de enero de 2021 [1] |
Repositorio | |
Escrito en | C , C ++ , JavaScript [2] |
Tipo | Compilador |
Licencia | Licencia MIT , Licencia de código abierto de la Universidad de Illinois / NCSA |
Sitio web | emscripten |
Emscripten permite que las aplicaciones y bibliotecas escritas en C o C ++ se compilen con anticipación y se ejecuten de manera eficiente en navegadores web, generalmente a velocidades comparables o más rápidas que JavaScript interpretado o compilado dinámicamente . Con el desarrollo más reciente de WebAssembly System Interface (WASI) [5] y tiempos de ejecución de WebAssembly como Node.js , Wasmtime, [6] y Wasmer, [7] Emscripten también se puede utilizar para compilar en WebAssembly para su ejecución en Incorporaciones web también.
Uso
Emscripten se ha utilizado para portar una serie de bases de código C / C ++ a WebAssembly, incluyendo Unreal Engine 3 , SQLite , MeshLab , [8] Bullet physics . [9] AutoCAD , [10] y un subconjunto del marco de aplicación Qt . [11] Otros ejemplos de software portado a WebAssembly a través de Emscripten incluyen los siguientes:
Motores de juego
Los motores de juego Unity , Godot y Unreal brindan una opción de exportación a HTML5, utilizando Emscripten. [12] [13] [14]
Marcos y kits de herramientas
openFrameworks exporta aplicaciones nativas de C ++ a HTML5 a través de Emscripten. [15] emscripten-qt permite compilar aplicaciones escritas usando el marco de aplicación Qt en WebAssembly. [11]
Archivado de software
En diciembre de 2014, Internet Archive lanzó un emulador de DOSBox compilado en Emscripten para proporcionar acceso basado en navegador a miles de programas de PC y MS-DOS archivados . [16] [17] [18]
Ver también
- asm.js
- Cliente nativo de Google (PNaCl)
- Haxe
- WebAssembly
Referencias
- ^ "emscripten-core / emscripten: lanzamientos" . emscripten-core / emscripten. GitHub . Consultado el 9 de febrero de 2021 .
- ^ "emscripten-core / emscripten: Emscripten: un compilador LLVM a JavaScript" .
C: 40,0%; C ++: 34,4%; JavaScript: 17,4%.
- ^ https://github.com/kripken/emscripten/wiki/WebAssembly
- ^ Walton, Zach (4 de abril de 2012). "Transfiera fácilmente C ++ a HTML5 / JavaScript con Emscripten" . WebProNews . iEntry Network. Archivado desde el original el 30 de julio de 2013 . Consultado el 25 de abril de 2012 .
- ^ El proyecto Wasmtime. "WASI: la interfaz del sistema WebAssembly" . WASI.dev . El proyecto Wasmtime . Consultado el 10 de febrero de 2021 .
- ^ El proyecto Wasmtime. "Wasmtime: un tiempo de ejecución pequeño y eficiente para WebAssembly y WASI" . Wasmtime.dev . El proyecto Wasmtime . Consultado el 10 de febrero de 2021 .
- ^ Wasmer. "Wasmer: el tiempo de ejecución de Universal WebAssembly" . Wasmer.io . Wasmer . Consultado el 10 de febrero de 2021 .
- ^ http://www.meshlabjs.net - Página de inicio de la versión experimental, basada en el cliente, javascript, de MeshLab que se ejecuta dentro de un navegador
- ^ "Portabilidad de ejemplos y demostraciones" . Wiki de Emscripten GitHub . Consultado el 1 de marzo de 2016 .
- ^ "El futuro de AutoCAD" . A través de la interfaz . Consultado el 9 de mayo de 2018 ..
- ^ a b "Qt para WebAssembly" .
- ^ "Motor de juego de Unity que se dirige al navegador sin complementos" . Ars Technica . Consultado el 1 de marzo de 2016 .
- ^ "El futuro de las secuencias de comandos en Unity - Blog de Unity" . Blog de Unity Technologies . Consultado el 1 de marzo de 2016 .
- ^ "Pollo Tappy" . www.unrealengine.com . Consultado el 1 de marzo de 2016 .
- ^ "Configuración de openFrameworks para Emscripten" . openFrameworks . Consultado el 4 de marzo de 2016 .
- ^ Ohlheiser, Abby (5 de enero de 2015). "Ahora puedes jugar a casi 2.400 videojuegos de MS-DOS en tu navegador" . Washington Post . Consultado el 8 de enero de 2015 .
- ^ Cada nueva bota es un milagro por Jason Scott (23 de diciembre de 2014)
- ^ "Búsqueda de archivos de Internet:" colección: softwarelibrary_msdos " " . archive.org . Consultado el 1 de marzo de 2016 .
enlaces externos
- Página web oficial
- Página del proyecto en GitHub
- Documentación de Emscripten
- Portabilidad de ejemplos y demostraciones
- Una lista de algunos tiempos de ejecución de WebAssembly