使用rust开发wasm模块

2023-04-13 16:34:49 浏览数 (1)

最近要在公司做一次 WebAssembly 的分享,中途有一个实战开发 wasm 模块的环节。

Rust 官网就有一个专门的页面介绍 Rust 生态在 wasm 开发的优势,并且提供了一个电子书《Rust and WebAssembly》,介绍了如何使用 Rust 开发 wasm 模块。

参照电子书的教程,我使用 Rust 开发了一个 wasm 模块和一个简单的前端页面,用于演示康威生命游戏。

项目地址:duyixian1234/wasm-game-of-life 演示页面: Life Game

整个开发过程的体验十分顺畅,具体的开发过程就不赘述了,感兴趣的同学参考电子书一步一步来就可以了。

短暂的接触之后,我发现 Rust 生态在很多方面都对 wasm 开发提供了卓越的支持:

  • 比起 C/C ,Rust 语言拥有丰富的表达能力和零成本的抽象,在安全性上也有更好的保障。
  • Rust 生态提供了完善的 wasm 相关工具链,包括 wasm-bindgen、wasm-pack、wasm-opt、wasm-gc、wasm-snip、wasm-bindgen-test 等。
  • Rust 社区拥有诸多 wasm 相关库,包括 js-sys、web-sys,用于简化 wasm 与 JavaScript、浏览器的互操作性。
  • 使用 Rust 工具链编译出来的 wasm 模块可以直接作为 ES 模块导入到 JavaScript 中,并提供了完善的 TypeScript 类型定义,对于前端开发者来说非常友好。

总结

Rust wasm = Future Web Developing

0 人点赞