wasi
差分
このページの2つのバージョン間の差分を表示します。
次のリビジョン | 前のリビジョン | ||
wasi [2022/12/26 11:00] – 作成 nullpon | wasi [2025/01/11 11:51] (現在) – nullpon | ||
---|---|---|---|
行 1: | 行 1: | ||
- | ====== | + | < |
+ | # WASI | ||
wasiはブラウザ以外でWebAssembly(wasm)を実行する際、システムリソース(ファイル、ネットワーク、時刻など)にアクセスするためのインターフェース仕様 | wasiはブラウザ以外でWebAssembly(wasm)を実行する際、システムリソース(ファイル、ネットワーク、時刻など)にアクセスするためのインターフェース仕様 | ||
行 5: | 行 6: | ||
ブラウザ以外でのwasm実行環境をwasiと呼ぶこともある | ブラウザ以外でのwasm実行環境をwasiと呼ぶこともある | ||
- | ===== コマンドライン実行環境 | + | ## 実行環境 |
- | - wasmtime | + | ### CLI |
- | - wasmer | + | |
+ | * [Wasmtime](https:// | ||
+ | * [Wasmer | ||
+ | * [WasmEdge](https:// | ||
- | macOSいずれもbrewでインストール可能 | + | 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/ | ||
+ | ``` | ||
+ | |||
+ | </ |
wasi.1672052451.txt.gz · 最終更新: 2022/12/26 11:00 by nullpon