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 、  Bulletphysical 。  AutoCAD 、Qt 应用程序框架的子集等等。通过 Emscripten 順利移植到 WebAssembly 的其他软件範例包括：

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

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

软件归档 
2014年12月，互联网档案馆推出了用Emscripten编译的DOSBox模拟器，提供数千个基於瀏覽器的存档的MS-DOS和PC程序。

參見 

 asm.js
 Google Native Client (PNaCl)
 Haxe
 WebAssembly

參考文獻

外部链接 

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

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