wasm-optとJavaScriptビルド(binaryen.js)を備えた、WebAssembly向けのC++コンパイラ・最適化ライブラリ。
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
ダウンロードページからEmscripten SDK(emsdk)をインストールします
- 2
hello.cをJavaScriptファイルにコンパイルします
emcc hello.c -o hello.js - 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 の数値は毎日更新されます。
関連プロジェクト
FFmpegをWebAssemblyとJavaScriptに移植し、ブラウザーで動画や音声の録画、変換、ストリーミングを可能にします。
LLVMコア、Clang C/C++フロントエンド、libc++、LLDリンカーなどを含む、モジュール式のコンパイラおよびツールチェーン技術群。
型付きTypeScriptのサブセットをWebAssemblyモジュールに変換する、TypeScript風の言語とコンパイラ。
LLVMを基盤とするGoコンパイラ。マイクロコントローラー、WebAssembly(WASM/WASI)、コマンドラインツール向けにビルドできます。
Node.jsなしで動作するネイティブ実行ファイルやWebAssemblyを生成する実験的なTypeScript/JavaScriptコンパイラ。