- 狭义上的 WebAssembly 是 W3C 标准化组织制定的一个可移植、体积小、加载快并且兼容 Web 的全新二进制格式
- 广义的 WebAssembly 可以理解为基于 WebAssembly 演化出来的完整生态
WebAssembly 基础核心架构图
- 各种编程语言: rust go
- WebAssembly
- WebAssembly runtime
- 可移植虚拟机 -> 不同平台: chrome macos win linux
WebAssembly runtime
- .wasm
- WasmLoader
- WebAssembly runtime
- Execution engine
- native method interface / wasi
- host: chrome macos win linux
总结
至此,我们已经从模块加载和解析、模块执行以及与宿主的交互机制等方面对 WebAssembly 运行时原理进行了详细的介绍;此外,基于 WebAssembly 线性内存布局和最新提案,对 WebAssembly GC 机制进行了简要的介绍。虽然,继 WebAssembly 的最小可用版本 ( MVP) 登陆浏览器之后,又发布了 WebAssembly 规范 2.0,但并不意味着 WebAssembly 已经很完善;事实上,情况远非如此,WebAssembly 将提供许多功能,它们将从根本上改变你可以使用 WebAssembly 来完成的工作。WebAssembly 未来所能提供的特性就如一棵技能树[28],我们已经获得了初始的技能来为我们完成工作,然而,这棵技能树还有很多新技能待我们去解锁,以为我们完成很多看起来不可能完成的任务,值得我们持续的关注和投入