WebAssembly正式成为W3C推荐的网页应用标准

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在浏览器之外的发展。