WASM是什么?带你了解WebAssembly的前世今生

内容纲要

    WebAssembly是什么?WebAssembly即WASM, WebAssembly是一种新的编码格式并且可以在浏览器中运行,WASM可以与JavaScript并存,WASM更类似一种低级的汇编语言。

    WebAssembly介绍

    WebAssembly简称WASM,它是可以运行在Web浏览器中的一种可移植、体积小、加载快的编码格式。WebAssembly并不是手写的一行行代码,它是一个编译目标。随着时间推移,越来越多的语言可以被编译为WebAssembly,WebAssembly可将C、C++、Java等原生语言直接编译为机器码,省略了转换器。WebAssembly运行速度快,同时它的二进制表示法也大大减小了代码包的大小,继而提升了浏览器的加载速度。

    WebAssembly和JavaScript

    提到WebAssembly大家很自然的会想到JavaScript,WebAssembly并不是JavaScript的替代,二者可以协同工作,通过使用WebAssembly的JavaScript API,把WebAssembly模块加载到一个JavaScript应用中并且在两者之间共享功能。

    WebAssembly优势

  • 快速高效:WebAssembly被设计为针对Size和Load Time进行优化的格式,可以在各个硬件平台上以native speed运行;

  • 安全性:WebAssembly是运行在沙盒内的,甚至可以和当前的Java虚拟机共享一套环境,并且也遵守浏览器各种跨域不跨域的规章制度;

  • 开放性:WebAssembly开放标准,不受任何一家厂商控制,并且被设计为可以和Java API和Context交互。

  • WebAssembly开发工具

  • AssemblyScript:支持直接将TypeScript编译成WebAssembly;

  • Emscripten:WebAssembly的灵魂工具,可以将其他的高级语言编译成WebAssembly;

  • WABT:将WebAssembly在字节码和文本格式相互转换的一个工具。

转自:http://www.mabiji.com/webassembly/wasm.html