Rust and WebAssembly

https://rustwasm.github.io/docs/book/

1. 先看4.1章 装好环境 wasm-pack和cargo-generate,npm可选(因为后面打包出的wasm文件直接在html中调用)

2. 初始化项目

cargo generate --git https://github.com/rustwasm/wasm-pack-template

3. 编译

wasm-pack build --target web
//编译后的文件会在pkg目录下

4. html中调用

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf8"/>
        <title>fuck</title>
    </head>
    <body>
        <button onclick="hello()">fuck</button>
        <script type="module">
            import { default as wasm, greet } from "./pkg/wt1.js";
            wasm().then((module) => {
                // 调用wasm里的方法
                greet();
            });
        </script>
    <script>
        function hello(){
            import("./pkg/wt1.js").then(({default:wasm, greet })=>{
                wasm().then((module) => {
                    // 调用wasm里的方法
                    greet();
                });
            })
        }
    </script>
    </body>
</html>