WASI原理与Wasmtime配置是怎样的

发布时间:2021-11-22 17:57:33 作者:柒染
来源:亿速云 阅读:316

WASI原理与Wasmtime配置是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

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.


这两款运行时都号称开始支持了WASI标准, 但博主使用rust-wasi-tutorial对两款运行时进行试验后,


发现WASMER对于文件读取还是有些问题, 而Wasmtime则是通过了规格测试(基于specs testsuite),


因此本文接下来着重于Wasmtime的配置介绍.

Wasmtime与rust环境配置


由于目前Wasmtime与WASMER均只支持Unix-like环境, 接下来楼主将演示如何在WSL(Ubuntu 18.04)下配置Wasmtime.


而在目前比较方便生成wasm的编程语言中, 博主选择使用自带wasi目标的[rust编程语言], 可以”零代价”配置wasm相关工具链.

配置rust

  1. 下载并安装rustup: curl https://sh.rustup.rs -sSf | sh, 安装时使用默认 stable-x86_64-unknown-linux-gnu工具链, 后面我们还会自行添加用于编译wasm的nightly工具链.

  2. 为cargo配置ustc反代, 提高crates(rust库)下载速度2

  3. 安装rustfmt: rustup component add rustfmt --toolchain stable-x86_64-unknown-linux-gnu. Wasmtime的test脚本需要用到该组件.

  4. 安装rust nightly工具链: rustup toolchain add nightly-x86_64-unknown-linux-gnu. 当前rust的WASI目标还在开发中, 尚未稳定.

  5. 安装rust WASI目标: rustup target add wasm32-unknown-wasi.

配置Wasmtime

  1. 安装cmake与clang: sudo apt install cmake clang, 用于编译Wasmtime. Wasmtime目前尚未有正式发布版本, 故需要我们自行编译.

  2. 拷贝Wasmtime源码: git clone --recursive git@github.com:CraneStation/wasmtime.git ~/wasmtime.

  3. 切换到Wasm源码目录: cd ~/wasmtime

  4. 执行测试脚本: ./test-all.sh. 当脚本执行完毕并通过测试后, 说明wasmtime已经正常编译并且能在当前WSL环境下正常工作, 可以使用生成的wasmtime可执行文件.

  5. 将生成的wasmtime拷贝到/usr/bin目录中: cp ~/wasmtime/target/release/wasmtime /usr/bin , 以便在整个WSL环境中任意目录执行wasmtime. wasmtime是个单文件(stand alone)运行时.

  6. 执行wasmtime --help命令, 确认wasmtime成功安装.

看完上述内容,你们掌握 WASI原理与Wasmtime配置是怎样的的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

推荐阅读:
  1. 原理:DHCP原理与配置
  2. 单臂路由的原理与配置

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

上一篇:如何进行leaflet在线地图的解析

下一篇:c语言怎么实现含递归清场版扫雷游戏

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》