WASM(Web Assembly)尽管是为了提高网页中性能敏感模块表现而提出的字节码标准, 但是WASM却不仅能用在浏览器(broswer)中, 也可以用在其他环境中. 在这些环境中, 我们则需要支持WASI(WebAssembly System Interface, WASM系统接口)的runtime来执行我们编译运行的wasm模块. 本文将介绍Mozilla下的一个组织CraneStation所开发的WASM运行时wasmtime, 该运行时对WASI支持比较高.
什么是WASI1?
WASI是一个新的API体系, 由Wasmtime项目设计, 目的是为WASM设计一套引擎无关(engine-indepent), 面向非Web系统(non-Web system-oriented)的API标准. 目前, WASI核心API(WASI Core)在做覆盖文件, 网络等等模块的API, 但这些实现都是刚刚开始实现, 离实用还是有很长路要走.
关于WASM runtime
在了解了WASI之后, 博主最后选定两个WASM运行时进行探索: WASMER 与 Wasmtime.
Wasmtime与rust环境配置
由于目前Wasmtime与WASMER均只支持Unix-like环境, 接下来楼主将演示如何在WSL(Ubuntu 18.04)下配置Wasmtime.
配置rust
下载并安装rustup: