CPython bindingsを使わずにPythonコードを実行でき、WebAssemblyや組み込みにも対応したRust製Python 3インタプリタ。
WebAssembly/binaryen
wasm-optとJavaScriptビルド(binaryen.js)を備えた、WebAssembly向けのC++コンパイラ・最適化ライブラリ。
- スター
- 8,666
- フォーク
- 899
- 未解決の Issue
- 580
- 最終コミット
- 8 時間前
これは何?
Binaryenは、C++で実装されたWebAssembly向けのコンパイラおよびツールチェーン基盤ライブラリです。シンプルなC APIとJavaScriptインターフェースを提供し、WebAssemblyに近い形式の入力と一般的な制御フローグラフの両方を受け付けます。内部IRは、WebAssemblyへの高速なコンパイルと、最適化パスの並列実行を想定して設計されています。
最適化機能には、コードサイズの削減と実行速度の向上を目的とする多数のパスが含まれており、ローカルレジスタ割り当て、デッドコード除去、インライン化、データセグメントのパッキングなど、WebAssemblyに特化した変換に重点を置いています。メインツールのwasm-optは、wasmファイルにこれらのパスを適用します。また、wasmのアセンブルと逆アセンブル、wasm2jsによるJavaScriptへの変換、モジュールのマージ、テストケースの縮小、wasmのインタープリター実行などを行う関連ツールも用意されています。
Emscripten、wasm-pack、Kotlin/Wasm、DartのFlutter webビルドなど、複数のツールチェーンがBinaryenをコンポーネントとして利用しています。また、AssemblyScriptやGrainからライブラリとして利用されています。
主な機能
- 01コードサイズの削減と実行速度の向上を目的とする、WebAssemblyに特化した多数の最適化パス
- 02wasmファイルの最適化と変換を行うコマンドラインツールwasm-opt
- 03WebAssemblyをES6 JavaScriptモジュールに変換するコンパイラwasm2js
- 04コードからモジュールを構築・最適化するためのシンプルなC APIとbinaryen.js
- 05wasmファイルのバンドル、不要部分の除去、縮小に使えるwasm-merge、wasm-metadce、wasm-reduce
ユースケース
- C、C++、Rust、Kotlinのツールチェーンが生成するWebAssembly出力を小さくし、高速化する
- ネイティブのwasmに対応していない環境向けにWebAssemblyをJavaScriptへコンパイルする
- リリース前に複数のwasmモジュールを1つのファイルにまとめる
- JavaScriptまたはCからプログラムでWebAssemblyモジュールを構築する
使う前に知っておきたいこと
- デフォルトのテキスト出力は、常に有効なWebAssemblyテキスト形式とは限りません。有効なテキストを出力するには、--generate-stack-ir --print-stack-ir を使用してください。
トピック
よくある質問
- binaryen とは?
- wasm-optとJavaScriptビルド(binaryen.js)を備えた、WebAssembly向けのC++コンパイラ・最適化ライブラリ。 Binaryenは、C++で実装されたWebAssembly向けのコンパイラおよびツールチェーン基盤ライブラリです。シンプルなC APIとJavaScriptインターフェースを提供し、WebAssemblyに近い形式の入力と一般的な制御フローグラフの両方を受け付けます。内部IRは、WebAssemblyへの高速なコンパイルと、最適化パスの並列実行を想定して設計されています。
- binaryen は無料で使えますか?ライセンスは?
- binaryen は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- binaryen は今もメンテナンスされていますか?
- 活発にメンテナンス中。binaryen の最終コミットは 2026年10月21日 です。
- binaryen は何に使えますか?
- C、C++、Rust、Kotlinのツールチェーンが生成するWebAssembly出力を小さくし、高速化する ネイティブのwasmに対応していない環境向けにWebAssemblyをJavaScriptへコンパイルする リリース前に複数のwasmモジュールを1つのファイルにまとめる JavaScriptまたはCからプログラムでWebAssemblyモジュールを構築する
- binaryen はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/WebAssembly/binaryen
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
RPGやプラットフォーマー、ブレイクアウト風ゲームなど、タイルベースのゲーム向けマップを作成できる汎用タイルマップエディター。
Node.jsなしで動作するネイティブ実行ファイルやWebAssemblyを生成する実験的なTypeScript/JavaScriptコンパイラ。
TypeScript 7のコンパイラーと言語サーバーをRustに移植した、型チェックとコード出力のドロップイン置き換えです。
画像からテキストを抽出するオープンソースのOCRエンジン(libtesseract)とコマンドラインツール。LSTMベースの認識に対応し、100以上の言語を扱えます。
物理演算、アニメーション、タイルマップ、会話機能を備えた、D言語向けのシンプルな2Dゲームエンジン。