開発元 | Alon Zakai |
---|---|
初版 | 2012年11月11日 |
最新版 |
3.1.44
/ 2023年7月25日[1] |
リポジトリ | |
プログラミング 言語 | C, C++, JavaScript[2] |
種別 | コンパイラ |
ライセンス | MITライセンス, イリノイ大学/NCSAオープンソースライセンス |
公式サイト |
emscripten |
Emscriptenは、CおよびC++ソースコードを、主にウェブブラウザ上で実行することを目的として、WebAssembly[3](または、2017年にWebAssemblyが登場するまで当初のターゲットであった、asm.jsとして知られるJavaScriptのサブセット[4])にコンパイルする、LLVM/Clangベースのコンパイラ。
Emscriptenを利用することで、CまたはC++で書かれたアプリケーションやライブラリを事前コンパイルして、ウェブブラウザ上で効率的に、特に動的にコンパイルされたあるいはインタプリタ実行されたJavaScriptと同等か、より速いスピードで実行することが可能になる。さらに最新のWebAssembly System Interface(WASI)[5]の開発成果物とNode.js、Wasmtime[6]、Wasmer[7]などのWebAssemblyランタイムと組み合わせると、Emscriptenは非Web環境で実行するためのWebAssembly埋め込み用にコンパイルすることもできる。
EmscriptenはC/C++コードベースをWebAssemblyに移植するために広く利用されており、代表例としてUnreal Engine 3、SQLite、MeshLab[8]、Bullet physics[9]、AutoCAD[10]、Qt アプリケーションフレームワークのサブセット[11]がある。Emscriptenを利用してWebAssemblyに移植されたソフトウェアの他の例としては、以下が挙げられる。
Unity、Godot、UnrealゲームエンジンはHTML5にエクスポートする選択肢を提供しており、これにはEmscriptenが利用されている[12][13][14]。
openFrameworksはEmscriptenを利用してネイティブC++アプリケーションをHTML5にエクスポートできる[15]。emscripten-qtはQtアプリケーションフレームワークを使用して書かれたアプリケーションをWebAssemblyにコンパイルすることを可能にする[11]。
2014年12月にインターネットアーカイブは、多数のアーカイブされたMS-DOSプログラムとPCプログラムへのブラウザ上でのアクセスを提供するため、EmscriptenでコンパイルされたDOSBoxエミュレータをリリースした[16][17][18]。