Repolode
emscripten-core

emscripten-core/emscripten

C/C++コードをWebAssemblyに変換し、ブラウザーやNode.jsなどのWasmランタイムで実行できるコンパイラツールチェーン。

スター
27,734
フォーク
3,572
未解決の Issue
2,527
最終コミット
3 時間前

これは何?

EmscriptenはLLVMとBinaryenを使って、C/C++をWebAssemblyにコンパイルします。生成したコードはWeb、Node.js、スタンドアロンのWasmランタイムで実行できます。emccコマンドはgccやclangと同じように使え、WebAssemblyモジュールとJavaScriptローダー、またはサンプルのHTMLページを生成します。

OpenGLやSDL2などのポータブルなAPIをWeb向けに実装しており、既存のネイティブなグラフィカルアプリケーションをブラウザーに移植できます。このような移植の例として、UnityゲームエンジンやGoogle Earthなどの大規模プロジェクトが挙げられています。

主な対象はClang経由のC/C++ですが、Rustのwasm32-unknown-emscriptenターゲットなど、LLVMベースの他のコンパイラとも連携できます。

主な機能

  • 01LLVMとBinaryenを使ってC/C++をWebAssemblyにコンパイル。
  • 02ブラウザー、Node.js、Deno、Bun、スタンドアロンのWasmランタイムで実行。
  • 03OpenGLとSDL2のAPIをWeb向けに実装。
  • 04emccコマンドを使い、gccやclangの置き換えとして利用可能。
  • 05ローダーを含むHTMLページ、またはJavaScriptファイルのみを生成可能。

ユースケース

  • 既存のC/C++製デスクトップアプリケーションやゲームを、Webブラウザーで動くように移植する。
  • ネイティブのC/C++ライブラリをNode.jsプロジェクト内で実行する。
  • 他のWasmランタイムで利用するWebAssemblyモジュールをCコードからビルドする。

クイックスタート

  1. 1

    ダウンロードページからEmscripten SDK(emsdk)をインストールします

  2. 2

    hello.cをJavaScriptファイルにコンパイルします

    emcc hello.c -o hello.js
  3. 3

    生成されたJavaScriptをNode.jsで実行します

    node hello.js

使う前に知っておきたいこと

  • ここでのセットアップとは、単一のパッケージをインストールすることではなく、ダウンロードページからemsdkツールチェーンをインストールすることを指します。

トピック

よくある質問

emscripten とは?
C/C++コードをWebAssemblyに変換し、ブラウザーやNode.jsなどのWasmランタイムで実行できるコンパイラツールチェーン。 EmscriptenはLLVMとBinaryenを使って、C/C++をWebAssemblyにコンパイルします。生成したコードはWeb、Node.js、スタンドアロンのWasmランタイムで実行できます。emccコマンドはgccやclangと同じように使え、WebAssemblyモジュールとJavaScriptローダー、またはサンプルのHTMLページを生成します。
emscripten は無料で使えますか?ライセンスは?
emscripten は Other ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
emscripten は今もメンテナンスされていますか?
活発にメンテナンス中。emscripten の最終コミットは 2026年10月21日 です。
emscripten は何に使えますか?
既存のC/C++製デスクトップアプリケーションやゲームを、Webブラウザーで動くように移植する。 ネイティブのC/C++ライブラリをNode.jsプロジェクト内で実行する。 他のWasmランタイムで利用するWebAssemblyモジュールをCコードからビルドする。
emscripten のインストール方法は?
ダウンロードページからEmscripten SDK(emsdk)をインストールします hello.cをJavaScriptファイルにコンパイルします: emcc hello.c -o hello.js 生成されたJavaScriptをNode.jsで実行します: node hello.js
emscripten はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/emscripten-core/emscripten

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト