This commit is contained in:
2020-01-30 21:39:38 +08:00
parent 85b24c3ac6
commit 013b21b10f
3 changed files with 58 additions and 0 deletions

9
wasi/Cargo.toml Normal file
View File

@@ -0,0 +1,9 @@
[package]
name = "wasi"
version = "0.1.0"
authors = ["Hatter Jiang <jht5945@gmail.com>"]
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]

39
wasi/README.md Normal file
View File

@@ -0,0 +1,39 @@
```shell
rustup target add wasm32-wasi
```
```shell
cargo build --target=wasm32-wasi
```
```shell
$ ls target/
debug wasm32-wasi
```
运行时Runtime
运行这个文件需要一个运行时Runtime。你也可以把这个理解成一个“容器”“虚拟机”什么的都行。但是准确的叫法是运行时。
目前常见的运行时有 wasmtimewasmer 等。
我们这次用 wasmtime 来运行吧。
`curl https://wasmtime.dev/install.sh -sSf | bash`
or download from:
https://github.com/bytecodealliance/wasmtime/releases
```
$ wasmtime --dir=. target/wasm32-wasi/debug/wasi.wasm
Hello, world!
```
https://mp.weixin.qq.com/s/VYkUvD1NpRdx_qoIdCCq8w - _【Rust每周一知】Rust, wasm, wasi 试玩儿_

10
wasi/src/main.rs Normal file
View File

@@ -0,0 +1,10 @@
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(())
}