当前位置: 首页 > 工具软件 > wasm-bindgen > 使用案例 >

rust开发wasm 01

魏景龙
2023-12-01

首先是rust环境搭建
这里我只会rustup 一路default
https://rustup.rs/
然后是安装wasm-pack这个软件
https://rustwasm.github.io/wasm-pack/installer/
安装完毕之后 按教程所说是wasm-pack new name就可以创建出一个项目了
结果 我输入这个命令行之后 出现了奇怪的报错 并不能成功创建 说问题出在一个叫
cargo-generate的包上,需要cargo install cargo-generate(MMP 这要手动整)
于是手动搞,但是我最后16G的C盘啊 一跑就变成14.5G了,心累WAW
励志挣钱了给自己买个大的固态C盘

坑点
我艹 这个new根本创建不出来项目 直接烂了
于是还是用cargo new一个普通项目
然后修改toml文件`
[package]
name = “xxx”
version = “0.1.0”
edition = “2021”
[dependencies]
wasm-bindgen = “0.2.83”

[lib]
crate-type = [“cdylib”]

[profile.dev]
opt-level = “s”`
这几个方括号分别是包的信息,依赖的包 lib那个是指的是我们是个动态库,opt-level=s说的是要生产的代码尽量小
然后实际代码就随便写写
lib.rs

use wasm_bindgen::prelude::*;
#[wasm_bindgen]
pub fn test()->i32 {
    2
}

就可以了
怎么打包 终于这个wasm-pack能正常跑一下了
wasm-pack build --target web然后就在pkg文件夹下面生成了wasm文件了pkg文件夹3.5kb不知道算不算大 只写了个这个函数
然后就可以搞个index.html引用试试他了

<!DOCTYPE html>
<html>
    <head>
        <meta content="text/html;charset=utf-8" http-equiv="Content-Type"/>
    </head>
    <body>
        <script type="module">
            import init, { test } from '../pkg/simplewasm.js';        
            async function run() {
                await init();//这个是要await的 是执行了load的
                console.log(test());
              }
            }
            run();
        </script>
    </body>
</html>
 类似资料: