Rust是一门很新的编程语言,类似C++,无GC、无Run time有着很好的性能,在FaceBook内使用Rust构建了一个Libra项目,使Rust名声大噪。2017-2018年蝉联两年stackoverflow 最受欢迎的语言第一名。有着替代C++的潜力。
对于我们前端来讲更关注的是如何使用一种高效的编程语言来实现javascript里的高密度计算的代码,能够解决javascript和webassembly传递复杂参数的问题,并且能够方便快捷的编译成.wasm文件。 社区内大部分工具都支持C/C++编译成.wasm,不过如果想在本地编译wasm 本地需要安装很复杂的依赖 python 3+、xcode等,这是一个工具链,并且这些过程跟javascript 一点关系也没有,不是工作的重点,却很耗时费力。方便的是有很多在线编译工具比如 WasmExplorer。虽然编译工具链可以通过在线工具解决,但是javascript和webassembly之间复杂参数传递的问题还是一个头疼的问题。
Rust,是目前对wasm编译最友好的语言,一键编译成.wasm文件。并且还有“npm”包 wasm-bindgen 用来解决javascript和webassembly间复杂参数传递。 这也是我们使用Rust的主要原因。
(Rust的安装非常简单)
Rust 工具链包括:
运行: curl [https://sh.rustup.rs](https://sh.rustup.rs) -sSf | sh
即可安装
安装完成后可以参照Rust官方上的demo,试着Run起你的第一个用Rust实现的Hello World。
首先使用cargo 生成一个Rust项目:
cargo generate --git https://github.com/rustwasm/wasm-pack-template
生成的项目目录:
wasm-pack 用于将 Rust 项目打包成单个 WASM 文件(类似 Webpack)
curl [https://rustwasm.github.io/wasm-pack/installer/init.sh](https://rustwasm.github.io/wasm-pack/installer/init.sh) -sSf | sh
按照好 wasm-pack后,cd到项目目录下,运行wasm-pack build 即可编译出.wasm文件 是不是比C/C++方便很多~