Wasmtime:高速でセキュアなWebAssemblyランタイム
Wasmtime
WasmtimeはWebAssemblyのための高速でセキュアなランタイムです。ここではwasmtimeによるwasmの実行を試してみましょう。
インストールと準備
wasmtimeのインストール:
$ curl https://wasmtime.dev/install.sh -sSf | bash Installing latest version of Wasmtime (v16.0.0) Checking for existing Wasmtime installation Fetching archive for Linux, version v16.0.0 https://github.com/bytecodealliance/wasmtime/releases/download/v16.0.0/wasmtime-v16.0.0-x86_64-linux.tar.xz ######################################################################## 100.0% Creating directory layout Extracting Wasmtime binaries wasmtime-v16.0.0-x86_64-linux/ wasmtime-v16.0.0-x86_64-linux/LICENSE wasmtime-v16.0.0-x86_64-linux/wasmtime wasmtime-v16.0.0-x86_64-linux/README.md wasmtime-v16.0.0-x86_64-linux/wasmtime-min Editing user profile (/home/rsakao/.bashrc) Finished installation. Open a new terminal to start using Wasmtime! # インストールしたrustを使用するために、ターミナルを新たに開くか、以下のようにシェルを再実行します $ exec $SHELL
これでインストールは完了です。
ここではrustのソースコードをwasmtimeで動作させるため、rustをインストールします。以下はWSL(Windows Subsystem for Linux)でのインストール方法です。他の環境ではinstall rustを参照してください。
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
実行例
まずrustのサンプルコードを書きます。hello.rs
というファイルを作成し、以下を記載します。
fn main() { println!("Hello, world!"); }
hello.rs
ファイルが配置されたパスで以下を実行します。
$ rustup target add wasm32-wasi $ rustc hello.rs --target wasm32-wasi $ ls hello.rs hello.wasm $ wasmtime hello.wasm Hello, world!
rustによって記述されたソースコードからwasmバイナリを作成し、それをwasmtimeによって実行することができました。
以上が、簡単で軽量なwasmランタイムとしてのWasmtimeの実行でした。