合作使WebAssembly成为跨平台运行时

字节码联盟,这是一个开源基金会,它将使WebAssembly成为可在本机移动,台式机和服务器环境中使用的跨平台运行时,并且不只是在浏览器中

WebAssembly是一种相对较新的技术。这是2017年正式采用的标准,定义了新的二进制格式。

最初,WebAssembly是专门为找到一种更好,更紧凑的方式将Web资源从服务器传递到用户的浏览器而开发的。用户可以接收WASM(WebAssembly)字节码文件,而不必一次接收数十或数百个HTML,JavaScript和CSS文件。

因为它是二进制格式,所以开发人员很快意识到,他们可以使用其他语言(例如C ++或Rust)编写代码,将其编译为WASM,然后在浏览器中运行,而无需首先实际编写JavaScript。

自发布以来,WASM一直是Web应用程序开发人员的福音,可帮助他们创建具有常规JavaScript无法实现的功能的应用程序。

当前,所有主流浏览器都支持WebAssembly,但是开发人员也在探索使用WASM创建一个可以在任何地方运行的单一应用程序的想法。

努力防止WEBASSEMBLY侧身走

字节码联盟致力于标准化创建跨平台WebAssembly运行时的工作。从本质上讲,这是通过提供在开发时考虑到安全性的工具来阻止不安全的WebAssembly运行时被广泛采用的尝试。

TechRepublic Premium提供的工具和模板

Mozilla杰出工程师,WebAssembly的共同创建者Luke Wagner说:“ WebAssembly正在改变着Web,但是我们认为WebAssembly可以在软件生态系统中发挥更大的作用,因为它继续扩展到浏览器之外。

“这是新技术诞生之初的一个独特时刻,我们有机会修复已发生的问题,并为可移植和可扩展的本机开发建立新的默认安全基础。但是,我们需要认真考虑跨行业行动,以确保以正确的方式实现这一目标。” Wagner补充说。

“与Bytecode联盟的合作伙伴一起,Mozilla正在建立这些新的安全基础-从小型嵌入式设备到大型计算云,应有尽有。”

为了开始工作,字节码联盟的所有四个创始成员都向其基金会提供了WebAssembly内部工具。这包括:

运行时间:

Wasmtime 是一个独立的WebAssembly运行时,可以用作CLI工具或嵌入到其他系统中。它具有很高的可配置性和可扩展性,因此可以用作许多用例特定运行时的基础,从小型IoT设备一直到云数据中心。

Lucet 是用例特定运行时的一个示例。它是使用AOT编译和其他技术提供低延迟和高并发性的快速CDN和Edge Compute的理想选择。我们将其重构为以Wasmtime为核心。

WebAssembly Micro Runtime(WAMR) 是另一个用例特定的运行时。对于资源极其有限的小型嵌入式设备而言,它是理想的选择。它占用空间小,并使用解释器将内存开销保持在较低水平。

运行时组件:

Cranelift逐渐 成为最先进的代码生成器。它旨在快速生成优化的机器代码,因为它可以在逐个函数的级别上并行编译。

WASI common是运行时可以使用的WebAssembly系统接口的独立实现。

语言工具:

cargo-wasi 是一个轻量级的Cargo子命令,可将Rust代码编译为目标WebAssembly和WebAssembly系统接口,供浏览器外使用。

wat和 wasmparser解析WebAssembly。wat解析文本格式,而 wasmparser是事件驱动的库,用于解析二进制格式。

这种努力能否成功还有待观察。这四位创始成员希望看到其他科技公司加入他们的行列。除非其他主要的浏览器和OS供应商加入,否则从长远来看,基金会的努力可能注定了失败。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。