Wasm
在开始之前,我们还是先来回顾下Wasm:
WebAssembly是一种二进制指令格式,简称为Wasm,它可以运行在适用于堆栈的虚拟机上。
WebAssembly存在的意义就是成为编程语言的可移植编译目标,让在Web上部署客户端和服务端应用成为可能。
Wasm具有紧凑的二进制格式,可为我们提供近乎原生的网络性能。随着它变得越来越流行,许多语言都编写了编译成Web程序集的绑定工具。
为什么是Rust
Rust是一个快速、可靠二期又节约内存的编程语言。在过去六年的stackoverflow的最受喜爱的编程语言中,它一直蝉联榜首的位置,主要还是这个语言本身拥有众多的优点,比如:
内存安全
类型安全
消除数据竞争
使用前编译
建立(并且鼓励)在零抽象之上
最小的运行时(无停止世界的垃圾搜集器,无JIT编译器,无VM)
低内存占用(程序可以运行在资源受限的环境,比如小的微控制器)
针对裸机(比如,写一个OS内核或者设备驱动,把Rust当一个‘高层’汇编器使用)”
另外,Rust在WebAssembly领域的贡献非常大的,使用Rust编写WebAssembly非常简单。
但是,Rust存在的目的不是为了替代JavaScript而是和他形成互补,因为Rust语言的学习曲线是非常陡峭的,用它去完全替代Web开发几乎是不可能的。
所以,我们一般会在Web开发的工具链,或者前端页面中一些非常大量的数据计算中的操作用到它。
前置知识
在开始开发之前,你需要了解一些前置知识,React相关的就不多说了,我们来看看Rust相关的几个重要概念。
cargo
cargo是rust的代码组织和包管理工具,你可以将它类比为node.js中的npm。
cargo提供了一系列强大的功能,从项目的建立、构建到测试、运行直至部署,为rust项目的管理提供尽可能完整的手段。同时,它也与rust语言及其编译器rustc本身的各种特性紧密结合。
rustup
rustup是Rust的安装和工具链管理工具,并且