Emscripten

出典: フリー百科事典『ウィキペディア(Wikipedia)』
ナビゲーションに移動 検索に移動
Emscripten
開発元 Alon Zakai
初版 2012年11月11日 (2012-11-11)
最新版
2.0.30 / 2021年9月15日 (23日前) (2021-09-15)[1]
リポジトリ ウィキデータを編集
プログラミング
言語
C, C++, JavaScript[2]
種別 コンパイラ
ライセンス MITライセンス, イリノイ大学/NCSAオープンソースライセンス
公式サイト emscripten.org
テンプレートを表示

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 3SQLiteMeshLab[8]Bullet physics[9]AutoCAD[10]Qt アプリケーションフレームワークのサブセット[11]がある。Emscripten を利用して WebAssembly に移植されたソフトウェアの他の例としては、以下が挙げられる。

ゲームエンジン[編集]

UnityGodotUnreal ゲームエンジンは 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]

参考[編集]

参照[編集]

  1. ^ Releases · emscripten-core/emscripten
  2. ^ emscripten-core/emscripten: Emscripten: An LLVM-to-WebAssembly Compiler. "C 46.8%; C++ 37.1%; JavaScript 10.8%"
  3. ^ Building to WebAssembly — Emscripten 2.0.31 (dev) documentation”. emscripten.org. 2021年9月17日閲覧。
  4. ^ Walton, Zach (2012年4月4日). “Easily Port C++ To HTML5/JavaScript With Emscripten”. WebProNews. iEntry Network. 2013年8月17日閲覧。
  5. ^ The Wasmtime Project. “WASI: The WebAssembly System Interface”. WASI.dev. The Wasmtime Project. 2021年2月10日閲覧。
  6. ^ The Wasmtime Project. “Wasmtime: A small and efficient runtime for WebAssembly & WASI”. Wasmtime.dev. The Wasmtime Project. 2021年2月10日閲覧。
  7. ^ Wasmer. “Wasmer: The Universal WebAssembly Runtime”. Wasmer.io. Wasmer. 2021年2月10日閲覧。
  8. ^ http://www.meshlabjs.net - Homepage of the experimental, client based, javascript, version of MeshLab that runs inside a browser
  9. ^ Porting Examples and Demos”. Emscripten GitHub wiki. 2016年3月1日閲覧。
  10. ^ The Future of AutoCAD”. Through the Interface. 2018年5月9日閲覧。.
  11. ^ a b Qt for WebAssembly”. Template:Cite webの呼び出しエラー:引数 accessdate は必須です。
  12. ^ Unity game engine heading to the browser without plug-ins”. Ars Technica. 2016年3月1日閲覧。
  13. ^ The future of scripting in Unity – Unity Blog”. Unity Technologies Blog. 2016年3月1日閲覧。
  14. ^ Tappy Chicken”. www.unrealengine.com. 2016年3月1日閲覧。
  15. ^ openFrameworks setup for Emscripten”. openFrameworks. 2016年3月4日閲覧。
  16. ^ Ohlheiser, Abby (2015年1月5日). “You can now play nearly 2,400 MS-DOS video games in your browser”. The Washington Post. 2015年1月8日閲覧。
  17. ^ Each New Boot a Miracle by Jason Scott (December 23, 2014)
  18. ^ Internet Archive Search: "collection:softwarelibrary_msdos"”. archive.org. 2016年3月1日閲覧。

外部リンク[編集]