Rust : wasm尝试 与wasmtime库

3 篇文章 0 订阅

尝试了一下wasmtime库,顺便了解一下编译wasm文件的过程。
说明一下,我在wsl平台上进行的以下尝试。此前出现过一些问题,主要是文件读写的权限,后面把权限打开了,按照wasmtime库的说明,基本上就顺利了。

具体的参考资料可以参阅:

https://github.com/bytecodealliance/wasmtime

几个步骤:以hello.rs文件为例

$ rustup target add wasm32-wasi
$ rustc hello.rs --target wasm32-wasi
$ wasmtime hello.wasm

两种方式:

1、二进制文件,main.rs

在这里插入图片描述
注意要进入到src文件夹下,否则可能找不到文件:

songroom@DESKTOP-MEDPUTU:~/wasm_test/wtime/src$ rustc main.rs --target wasm32-wasi

在这里插入图片描述也可以在

cargo build --release --target=wasm32-wasi

在这里插入图片描述这样,生成wasm文件的名字和路径有所不同。

具体main.rs编译成.wasm文件的执行:
在相应的目录下,

songroom@DESKTOP-MEDPUTU:~/wasm_test/wtime$ cd target/wasm32-wasi/release
songroom@DESKTOP-MEDPUTU:~/wasm_test/wtime/target/wasm32-wasi/release$ wasmtime wtime.wasm
Hello, world! my first wasm try!
add x:5 y:6 output :17 

2、lib.rs
在wasm_test文件下,创建一个lib文件,wtime_lib,在lib.rs下补上相关代码。
在这里插入图片描述
同时,需要对cargo.toml文件进行设置:
在这里插入图片描述
执行:

cargo build --release --target=wasm32-wasi

具体如下:

`songroom@DESKTOP-MEDPUTU:~/wasm_test/wtime_lib$ cargo build --release --target=wasm32-wasi
warning: unused manifest key: build
   Compiling wtime_lib v0.1.0 (/home/songroom/wasm_test/wtime_lib)
    Finished release [optimized] target(s) in 0.52s`

你可以发现,在对应目录下,生成了.wasm文件。文件名为.toml文件中所设置。
在这里插入图片描述这样,不管是二进制main.rs还是lib.rs,都可以生成相应的.wasm文件了。

同时,也可以进一步了解一下wasm文件和原生代码执行的效率比较。

songroom@DESKTOP-MEDPUTU:~/wasm_test/wtime/target/wasm32-wasi/release$ time wasmtime wtime.wasm
Hello, world! my first wasm try!
add x:5 y:6 output :17 

real    0m0.013s
user    0m0.014s
sys     0m0.000s
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值