Emscripten

Emscripten是基於LLVM / Clang的編譯器，用來将C和C++源代码编译为WebAssembly 。在WebAssembly於2017年出現以前，JavaScript的子集asm.js曾是編譯目標 

Emscripten 允许預先编译用 C 或 C++ 编写的应用程序和库以在網頁瀏覽器中運行，絕大多數的情況下運行速度與直譯（或即時編譯）的 JavaScript 相同或更快。Emscripten 甚至可以模拟整个POSIX操作系统，使程序员能够使用C標準函式庫(libc) 中的函数。 

随着WebAssembly的接口（，WASI）和运行时系统（例如Node.js、Wasmtime和Wasmer）上的WebAssembly的開發進展，Emscripten也可编译成在網頁以外的地方使用的WebAssembly 。

 用途 
Emscripten 已讓许多 C/C++ 代码库順利移植到WebAssembly，包括Unreal Engine 3、SQLite 、 MeshLab 、 http://www.meshlabjs.net  - Homepage of the experimental, client based, javascript, version of MeshLab that runs inside a browserBulletphysical 。 AutoCAD 、Qt 应用程序框架的子集等等。通过 Emscripten 順利移植到 WebAssembly 的其他软件範例包括：

 游戏引擎 
Unity、Godot和Unreal游戏引擎利用Emscripten提供了HTML5的导出选项。 

 框架和工具包 
 通过 Emscripten 将本机 C++ 应用程序导出成 HTML5。emscripten-qt允许将使用Qt 应用程序框架编写的应用程序编译为WebAssembly。

 软件归档 
2014年12月，互联网档案馆推出了用Emscripten编译的DOSBox模拟器，提供数千个基於瀏覽器的存档的MS-DOS和PC程序。Each New Boot a Miracle  by Jason Scott (December 23, 2014)

 參見 

 asm.js
 Google Native Client (PNaCl)
 Haxe
 WebAssembly

 參考文獻 

 外部链接 



 Emscripten文檔 
 接口使用範例與演示 
 部分WebAssembly运行时的列表 

Category:使用MIT许可证的软件
Category:JavaScript函式庫
Category:编译器软件