WebAssembly Micro Runtime(WAMR)は、組み込み、IoT、エッジなどのリソースに制約のある環境向けの軽量Wasmランタイムです。
wasm3/wasm3
マイクロコントローラーにも載せられる小型の、C製高速WebAssemblyインタープリター。多くの言語からライブラリとして組み込めます。
- スター
- 8,077
- フォーク
- 538
- 未解決の Issue
- 21
- 最終コミット
- 先月
これは何?
Wasm3はCで書かれたWebAssemblyインタープリターです。ネイティブコードを生成せずにWASMモジュールを実行するため、ランタイムを小さく、移植しやすく保てます。プロジェクトが示す最小要件は、コードがおよそ64 KB、RAMが10 KBです。そのため、ESP32やArduinoボードなどのリソースに制約のあるハードウェアに加え、Linux、Windows、macOS、Android、iOSも対象としています。
WebAssembly仕様のテストスイートに合格しており、多くのWASIアプリケーションを実行できます。bulk memory operations、例外処理、複数メモリー、tail calls、reference typesなど、さまざまな提案機能に対応しています。実行トレース、gas metering、一時停止・再開用スナップショット、リソース上限設定などの追加機能も備えています。
Wasm3は単体ツールとしても、ライブラリとして組み込んでも利用できます。Python、Rust、Go、Zig、.NET、Swift、Nim、Arduino/PlatformIO向けのバインディングが用意されています。
主な機能
- 01JITを使わないインタープリター方式の実行により、実行時のコード生成が禁止されたプラットフォームにも適しています
- 02WebAssembly仕様のテストスイートに合格しており、多くのWASIアプリを実行できます
- 03約64 KBのコードと10 KBのRAMで、ESP32やArduinoなどのMCU上で動作します
- 04bulk memory、例外処理、tail callsなど、複数のWebAssembly提案機能に対応しています
- 05gas metering、リソース上限設定、実行トレース、一時停止・再開用スナップショットを提供します
ユースケース
- マイクロコントローラー上で、サンドボックス化されたプラグインやIoTルールを実行する
- C、Python、Rust、GoのアプリケーションにWASMスクリプト機能を組み込む
- JITを利用できないLinux、Windows、モバイル端末でWASIプログラムを実行する
- エッジコンピューティング製品や組み込み製品に、移植性の高いサンドボックス化ランタイムを追加する
クイックスタート
- 1
README にリンクされているインストール手順(docs/Installation.md)に従ってください
使う前に知っておきたいこと
- メンテナーは最小限のメンテナンス段階に入っており、新機能の開発は行っていませんが、プルリクエストのレビューとマージは引き続き行っています。
- インタープリターとして動作するため、JITベースのWebAssemblyランタイムより低速です。
収録されている特集
トピック
よくある質問
- wasm3 とは?
- マイクロコントローラーにも載せられる小型の、C製高速WebAssemblyインタープリター。多くの言語からライブラリとして組み込めます。 Wasm3はCで書かれたWebAssemblyインタープリターです。ネイティブコードを生成せずにWASMモジュールを実行するため、ランタイムを小さく、移植しやすく保てます。プロジェクトが示す最小要件は、コードがおよそ64 KB、RAMが10 KBです。そのため、ESP32やArduinoボードなどのリソースに制約のあるハードウェアに加え、Linux、Windows、macOS、Android、iOSも対象としています。
- wasm3 は無料で使えますか?ライセンスは?
- wasm3 は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- wasm3 は今もメンテナンスされていますか?
- 半年以内に更新あり。wasm3 の最終コミットは 2026年9月30日 です。
- wasm3 は何に使えますか?
- マイクロコントローラー上で、サンドボックス化されたプラグインやIoTルールを実行する C、Python、Rust、GoのアプリケーションにWASMスクリプト機能を組み込む JITを利用できないLinux、Windows、モバイル端末でWASIプログラムを実行する エッジコンピューティング製品や組み込み製品に、移植性の高いサンドボックス化ランタイムを追加する
- wasm3 のインストール方法は?
- README にリンクされているインストール手順(docs/Installation.md)に従ってください
- wasm3 はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/wasm3/wasm3
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
アプリやAIエージェントのコードを、高速で軽量なサンドボックス環境で実行するWebAssemblyランタイムとCLI。
Craneliftコードジェネレーターを基盤とするスタンドアロンのWebAssemblyランタイム。WASIに対応し、複数言語から組み込めます。
ブラウザー、Node、MCPサーバー上で複数言語のコードを実行できる、サンドボックス化されたWebAssemblyランタイム。
LLVMを基盤とするGoコンパイラ。マイクロコントローラー、WebAssembly(WASM/WASI)、コマンドラインツール向けにビルドできます。
Rust製の組み込み可能なJavaScriptエンジン。ECMAScript仕様を幅広くサポートするlexer、parser、interpreterを提供します。