wasi
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| wasi [2022/12/26 11:01] – [コマンドライン実行環境] nullpon | wasi [2025/01/11 11:51] (現在) – nullpon | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| - | ====== | + | < |
| + | # WASI | ||
| wasiはブラウザ以外でWebAssembly(wasm)を実行する際、システムリソース(ファイル、ネットワーク、時刻など)にアクセスするためのインターフェース仕様 | wasiはブラウザ以外でWebAssembly(wasm)を実行する際、システムリソース(ファイル、ネットワーク、時刻など)にアクセスするためのインターフェース仕様 | ||
| 行 5: | 行 6: | ||
| ブラウザ以外でのwasm実行環境をwasiと呼ぶこともある | ブラウザ以外でのwasm実行環境をwasiと呼ぶこともある | ||
| - | ===== コマンドライン実行環境 | + | ## 実行環境 |
| + | |||
| + | ### CLI | ||
| - | * wasmtime | + | * [Wasmtime](https:// |
| - | * wasmer | + | * [Wasmer - The Universal WebAssembly Runtime](https:// |
| + | * [WasmEdge](https:// | ||
| + | |||
| + | wasmtime、wasmerはbrewでインストール可能。wasmedgeはdockerイメージが配布されている | ||
| + | |||
| + | ### HTTPサーバ | ||
| + | |||
| + | * [Wasm Workers Server](https:// | ||
| + | |||
| + | |||
| + | ## rustでwasmをビルドしてwasiで実行 | ||
| + | |||
| + | [wasmtim](https:// | ||
| + | |||
| + | ``` | ||
| + | brew install wasmtime | ||
| + | ``` | ||
| + | |||
| + | wasm32-wasip1をビルドターゲットを追加 | ||
| + | |||
| + | ``` | ||
| + | rustup target add wasm32-wasip1 | ||
| + | ``` | ||
| + | |||
| + | プロジェクトの作成 | ||
| + | |||
| + | ``` | ||
| + | cargo init | ||
| + | ``` | ||
| + | |||
| + | Cargo.tomlに以下を追加 | ||
| + | |||
| + | ``` | ||
| + | [[bin]] | ||
| + | name = " | ||
| + | path = " | ||
| + | ``` | ||
| + | |||
| + | コードを書く | ||
| + | |||
| + | ```rust | ||
| + | fn main() { | ||
| + | println!(" | ||
| + | } | ||
| + | ``` | ||
| + | |||
| + | |||
| + | ビルド | ||
| + | |||
| + | ``` | ||
| + | cargo build --target wasm32-wasip1 | ||
| + | ``` | ||
| + | |||
| + | 実行 | ||
| + | |||
| + | ``` | ||
| + | wasmtime target/ | ||
| + | ``` | ||
| - | macOSいずれもbrewでインストール可能 | + | </ |
wasi.1672052484.txt.gz · 最終更新: by nullpon