rust安装

在线安装

 
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 wasm 环境搭建

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 

rust wasm demo

 
$ 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 安装与配置国内代理与镜像地址的方法参考