W3C(World Wide Web Consortium)宣布三项WebAssembly规范已经成为网页标准,分别是WebAssembly核心规范、网页API以及JavaScript界面。而WebAssembly也成为了第4个允许在浏览器上执行的语言,其他三个语言分别是HTML、CSS和JavaScript。
W3C项目负责人Philippe Le Hégaret提到,机器学习与人工智能应用越来越普遍,因此网页平台能够支持高效能应用程式很重要,而WebAssembly利用开放网页平台技术,扩展了网页应用程式的种类。
WebAssembly核心规范定义了一个低阶的虚拟机器,模拟了许多微处理器的功能,透过JIT(Just-In-Time)编译和直译,WebAssembly引擎可用几乎与原生平台编译代码相同的速度执行程序。而以WebAssembly格式储存代码的.wasm档案,类似Java的.class档案,其包含了静态资料和操作静态资料的代码区块,但与Java不同的是,WebAssembly通常是由其他程序语言,像是C/C++或Rust编译而成。
第二个成为标准的规范是WebAssembly网页API,这个规范定义了Promise界面,用于请求和执行.wasm档案,W3C提到,.wasm档案经过最佳化,可允许整个档案撷取完成之前就开始执行,而这强化了WebAssembly应用程序回应的能力。
最后一个规范WebAssembly JavaScript界面定义了JavaScript API,让JavaScript来呼叫并将参数传递给WebAssembly函式。在浏览器中,WebAssembly所有与主机的互动,都是透过JavaScript管理,而这代表WebAssembly受JavaScript安全模型保护。
WebAssembly是一种安全且可移植的低阶代码格式,目的是要让程序能高效能的执行,而且以压缩形式表示资源,使网页平台能执行运算密集应用,开发人员可用WebAssembly来开发影音解码器、密码运算或是游戏等,且由于WebAssenbly提供了一个独立于平台的运作环境,因此可以在各种电脑平台上执行。
WebAssembly的发展工作正如火如荼的进行,除了上述W3C正式推荐WebAssembly,在浏览器世界达到了一个里程碑,Mozilla也为了要扩展WebAssembly的可移植性,推动了WebAssembly系统界面WASI,要让WebAssembly的应用程序能跨出浏览器独立执行,另外,Mozilla还与多家企业共组联盟Bytecode Alliance,推动WebAssembly在浏览器之外的发展。