本文主要是介绍【Rust每周一知】Rust, wasm, wasi 试玩儿,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
春节假期不能出门,今天我们来玩儿一下 Rust 的 wasm target。
安装 target
看一下当前安装的 Rust 版本
$ rustc -V
rustc 1.40.0 (73528e339 2019-12-16)
执行
rustup target list
可以看到如下结果(列表很长,已把wasm相关的筛选出来),这几个是 Rust 支持的 wasm 相关的编译目标。
asmjs-unknown-emscripten
wasm32-unknown-emscripten
wasm32-unknown-unknown
wasm32-wasi
前 3 个,可以理解成编译出来的文件,用于加载到浏览器 web 页面(或有类似功能的运行时中)运行,它没有IO功能,因此常用于一些纯计算型任务(比如,把js中的计算密集型工作放wasm中来做)。具体可参考 https://rustwasm.github.io/book/introduction.html。
这里我们来玩 wasi。
准备一个简单的示例代码
新建一个项目
cargo new --bin testwasi
在 src/main.rs 中,加入下面这片代码,
use std::fs::File;
use std::io::prelude::*;fn main() -> std::io::Result<()> {let mut file = File::create("foo.txt")?;file.write_all(b"Hello, world!")?;println!("Hello, world!");Ok(())
}
代码就是基本的终端打印和生成一个文本文件,就不多做解释了。
尝试 wasi
WASI 是 The WebAssembly System Interface 的缩写,简单来说就是一套接口标准,将 wasm 的应用领域从 web 中拓展到更广阔的各个平台中去(可以想像成类似 libc 之类的东西,但是是跨平台的
这篇关于【Rust每周一知】Rust, wasm, wasi 试玩儿的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!