| 原作者 | Alon Zakai |
|---|---|
| 当前版本 |
|
| 源代码库 | |
| 编程语言 | C、C++、JavaScript[2] |
| 类型 | 編譯器 |
| 许可协议 | MIT、UIUC(英语:University of Illinois/NCSA Open Source License) |
| 网站 | emscripten |
Emscripten是基於LLVM /Clang的編譯器,用來将C和C++源代码编译为WebAssembly[3]。在WebAssembly於2017年出現以前,JavaScript的子集asm.js曾是編譯目標[4]
Emscripten 允许預先编译用 C 或 C++ 编写的应用程序和库以在網頁瀏覽器中運行,絕大多數的情況下運行速度與直譯(或即時編譯)的 JavaScript 相同或更快。Emscripten 甚至可以模拟整个POSIX操作系统,使程序员能够使用C標準函式庫(libc) 中的函数。[5]
随着WebAssembly的接口(英語:WebAssembly System Interface,WASI)[6]和运行时系统(例如Node.js、Wasmtime[7]和Wasmer[8])上的WebAssembly的開發進展,Emscripten也可编译成在網頁以外的地方使用的WebAssembly 。
Emscripten 已讓许多 C/C++ 代码库順利移植到WebAssembly,包括Unreal Engine 3、SQLite 、[9]MeshLab 、[10]Bulletphysical 。[11]AutoCAD[12]、Qt 应用程序框架的子集等等。[13]通过 Emscripten 順利移植到 WebAssembly 的其他软件範例包括:
Unity、Godot和Unreal游戏引擎利用Emscripten提供了HTML5的导出选项。[14][15][16]
openFrameworks(英语:openFrameworks) 通过 Emscripten 将本机 C++ 应用程序导出成 HTML5。[17]emscripten-qt允许将使用Qt 应用程序框架编写的应用程序编译为WebAssembly。[13]
2014年12月,互联网档案馆推出了用Emscripten编译的DOSBox模拟器,提供数千个基於瀏覽器的存档的MS-DOS和PC程序。[18][19][20]
C: 40.0%; C++: 34.4%; #"ctx_ver=Z39.88-2004&rfr_id=info%3Asid%2Fzh.wikipedia.org%3AEmscripten&rft.atitle=emscripten-core%2Femscripten%3A+Emscripten%3A+An+LLVM-to-JavaScript+Compiler&rft.genre=unknown&rft.jtitle=GitHub&rft_id=https%3A%2F%2Fgithub.com%2Femscripten-core%2Femscripten%2Freleases&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal">