首先要说一句,WebAssembly 是一项极速发展的技术,互联网上流传的很多文章(17,18年所写)已经过时了。所以,请尽量查阅最新时间的相关描述文档。
WebAssembly 是什么
来看一下标准定义:
WebAssembly (abbreviated Wasm) is a binary instruction format for a stack-based virtual machine. Wasm is designed as a portable target for compilation of high-level languages like C/C++/Rust, enabling deployment on the web for client and server applications.
WebAssembly(缩写为 Wasm)是一种面向栈虚拟机的二进制指令格式,Wasm 被设计为一种可迁移的目标格式,可以作为 C/C++/Rust 这类高级语言的编译目标。这让 Wasm 能够被部署在 Web 客户端和服务端程序中运行。
WebAssembly被设计为可以和JavaScript一起协同工作——通过使用WebAssembly的JavaScript API,你可以把WebAssembly模块加载到一个JavaScript应用中并且在两者之间共享功能。这允许你在同一个应用中利用WebAssembly的性能和威力以及JavaScript的表达力和灵活性,即使你可能并不知道如何编写WebAssembly代码。
Wasm 已经被 Firefox, Chrome, Safari, Edge 支持。
官方网页:https://webassembly.org/
Wasm 的特点:
高效运行
安全
开放可调试
开放Web平台的一部分
高效运行。Wasm 栈虚拟机指令被设计得非常紧凑,生成的二进制文件体积小,加载时间缩短。WebAssembly 目标是接近本地的执行速度,同时能利用不同平台的硬件能力。
安全