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