アプリやAIエージェントのコードを、高速で軽量なサンドボックス環境で実行するWebAssemblyランタイムとCLI。
bytecodealliance/wasmtime
Craneliftコードジェネレーターを基盤とするスタンドアロンのWebAssemblyランタイム。WASIに対応し、複数言語から組み込めます。
- スター
- 18,744
- フォーク
- 1,879
- 未解決の Issue
- 888
- 最終コミット
- 4 時間前
これは何?
Wasmtimeは、ブラウザー内外で実行できるポータブルなバイナリ形式であるWebAssembly向けのスタンドアロンランタイムです。wasmtime CLIを使ってコマンドラインからWebAssemblyコンポーネントを実行できるほか、Rust crateや、C、C++、Python、.NET、Go、Ruby向けのバインディングを通じてアプリケーションに組み込めます。
Craneliftコードジェネレーターを使ってモジュールをコンパイルします。実行時のJITコンパイルと事前コンパイルのどちらにも対応しています。CPUとメモリの使用量を設定でき、ゲストプログラムがファイルやシステムリソースなどのホスト環境とやり取りするためのWASI APIを提供します。プロジェクトによると、公式WebAssemblyテストスイートに合格し、公式のwasm C APIを実装しています。
WasmtimeはBytecode Allianceのもとでメンテナンスされており、Rustで実装されています。
主な機能
- 01Craneliftコードジェネレーターを使い、WebAssemblyを実行時または事前にコンパイルします。
- 02ゲストプログラムがホストリソースにアクセスするためのWASI APIを提供します。
- 03CPUとメモリの消費量を設定できます。
- 04WebAssemblyコンポーネントを直接実行するCLIを備えています。
- 05Rust、C、C++、Python、.NET、Go、Ruby向けの組み込み用バインディングを提供します。
ユースケース
- コマンドラインからWebAssemblyコンポーネントを実行する。
- RustまたはCのアプリケーションに、サンドボックス化されたWebAssemblyランタイムを組み込む。
- WASI経由でホスト環境にアクセスする、信頼できないプラグインコードを実行する。
クイックスタート
- 1
公式のインストールスクリプトまたはリリースページからWasmtime CLIをインストールします
- 2
RustにWebAssembly WASIターゲットを追加します
rustup target add wasm32-wasip2 - 3
Rustのhello-worldプログラムをWebAssemblyコンポーネントにコンパイルします
rustc hello.rs --target wasm32-wasip2 - 4
コンパイルしたコンポーネントをWasmtimeで実行します
wasmtime hello.wasm
使う前に知っておきたいこと
- 1行のインストールスクリプトが案内されているのはLinuxとmacOSのみです。Windowsユーザーはリリースページを利用する必要があります。
トピック
よくある質問
- wasmtime とは?
- Craneliftコードジェネレーターを基盤とするスタンドアロンのWebAssemblyランタイム。WASIに対応し、複数言語から組み込めます。 Wasmtimeは、ブラウザー内外で実行できるポータブルなバイナリ形式であるWebAssembly向けのスタンドアロンランタイムです。wasmtime CLIを使ってコマンドラインからWebAssemblyコンポーネントを実行できるほか、Rust crateや、C、C++、Python、.NET、Go、Ruby向けのバインディングを通じてアプリケーションに組み込めます。
- wasmtime は無料で使えますか?ライセンスは?
- wasmtime は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- wasmtime は今もメンテナンスされていますか?
- 活発にメンテナンス中。wasmtime の最終コミットは 2026年10月21日 です。
- wasmtime は何に使えますか?
- コマンドラインからWebAssemblyコンポーネントを実行する。 RustまたはCのアプリケーションに、サンドボックス化されたWebAssemblyランタイムを組み込む。 WASI経由でホスト環境にアクセスする、信頼できないプラグインコードを実行する。
- wasmtime のインストール方法は?
- 公式のインストールスクリプトまたはリリースページからWasmtime CLIをインストールします RustにWebAssembly WASIターゲットを追加します: rustup target add wasm32-wasip2 Rustのhello-worldプログラムをWebAssemblyコンポーネントにコンパイルします: rustc hello.rs --target wasm32-wasip2 コンパイルしたコンポーネントをWasmtimeで実行します: wasmtime hello.wasm
- wasmtime はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/bytecodealliance/wasmtime
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
CPython bindingsを使わずにPythonコードを実行でき、WebAssemblyや組み込みにも対応したRust製Python 3インタプリタ。
V8、Rust、Tokioを基盤とする、セキュアなデフォルト設定を備えたJavaScript、TypeScript、WebAssemblyランタイム。
WebAssemblyにコンパイルしてインタラクティブなクライアントサイドWebアプリを構築するRustフレームワーク。HTML向けのJSX風マクロを備えています。
C/C++コードをWebAssemblyに変換し、ブラウザーやNode.jsなどのWasmランタイムで実行できるコンパイラツールチェーン。
型付きTypeScriptのサブセットをWebAssemblyモジュールに変換する、TypeScript風の言語とコンパイラ。