在线安装
curl https://sh.rustup.rs -sSf | sh source "$HOME/.cargo/env" # vim /etc/profile export PATH=$PATH:/root/.cargo/bin 非root用户安装配置 export PATH=~/.cargo/bin:$PATH # rustc --version rustc 1.31.1 (b6c32da9b 2018-12-18) $ rustc --version rustc 1.68.2 (9eb3afe9e 2023-03-27) 接触rust近5年,再回首,rust已更新30多个小版本了
rust 国内代理
export RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static export RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup 参考Rust 安装与配置国内代理与镜像地址的方法参考 https://lzw.me/a/rust-abc.html
rust webassembly 环境搭建
主要分两大步: 1. 搭建一个html web服务,其js可以调用wasm文件 2. 将rust转换为wasm文件,供html web服务调用 网络不好就多试几次,或者换时间再试几次,本次在centos7环境下安装 linux 依赖包安装 yum install openssl openssl-devel yum install git rust安装 curl https://sh.rustup.rs -sSf | sh source "$HOME/.cargo/env" wasm安装 curl https://Rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh cargo install cargo-generate
$ mkdir /opt/wasm
$ cd /opt/wasm
$ node -v
v14.17.0
在本地盘上执行,意思就是不要在直接插入电脑的移动硬盘上执行
npm init wasm-app ./demo && cd demo && npm i
npm run start
浏览器中访问下面的地址会弹出一个框
http://localhost:8080/
创建模板
--------------------------------------------------
/opt/wasm/demo下执行
cargo generate --git https://github.com/Rustwasm/wasm-pack-template.git --name rustlib
修改/opt/wasm/demo/rustlib/src/lib.rs
#[wasm_bindgen]
pub fn greet() {
alert("你好, rustlib!");
}
Rust 转 WASM
--------------------------------------------------
/opt/wasm/demo/rustlib目录下执行:
wasm-pack build --target web
js通过wasm调用rust程序,因此先将rust转为wasm文件,再让JS调用,
该命令在pkg 目录下生成一个 wasm文件 和一个 js 文件API调用样例,
这个js文件名称默认为项目名称,这里项目名称为rustlib,所以js名称为rustlib.js
后续会在html中调用这个js,这个js调用wasm,wasm再调用rust库文件
在html中调用rust方法
--------------------------------------------------
修改index.js,注释掉这个默认的greet方法
import * as wasm from "hello-wasm-pack";
// wasm.greet();
然后在index.html中引入自定义的greet方法
<body>
<script type="module">
import init, { greet } from './rustlib/pkg/rustlib.js';
async function run_wasm() {
await init();
greet();
}
run_wasm();
</script>
</body>
cargo-generate
create-wasm-app
wasm-pack-template
Rust 入门指南 (用 WASM 开发第一个 Web 页面)
入门 Rust 开发 WebAssembly
Rust 安装与配置国内代理与镜像地址的方法参考