欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

标准化进程中的WASI:赋予WebAssembly在浏览器外运行能力的系统接口-个人文章-SegmentFault思否

程序员文章站 2022-06-07 20:00:26
今天,我们宣布了一个新的标准化流程——wasi,一个webassembly的接口。 why: 开发者开始想要尝试在以外的地方使用webassembly,因为其提供了一个快速的、可伸...

今天,我们宣布了一个新的标准化流程——wasi,一个webassembly的接口。

why: 开发者开始想要尝试在以外的地方使用webassembly,因为其提供了一个快速的、可伸缩的、安全的方式来在不同平台运行相同的代码。

但是我们对此却并没有一个坚实的基础。在浏览器外运行代码需要一种与操作系统交互的方式——系统接口。然而webassembly平台目前却没有这样的东西。

what: webassembly作为一种汇编语言,针对的是一种概念上的计算机(抽象),而不是某一特定物理机平台。这就是为什么其可以跨平台地运行在不同的架构与系统上。

正因为webassembly是一种针对概念计算机的汇编语言,webassembly需要一组针对概念操作系统的系统接口,而不是某种特定平台的。只有这样,其才可以实现跨平台运行。

这就是wasi——针对webassembly平台的系统接口。

我们的目标是构建一个能够真正与webassembly配套的系统接口,并且能经受住时间的考验。这就意味着必须支持webassembly的两个关键原则——可移植性安全性

who: 我们正在组建一个webassembly小组,专注于wasi标准化。我们已经聚集了感兴趣的合作伙伴,并正在寻找更多的合作伙伴。 以下是我们和我们的合作伙伴以及支持者认为这很重要的一些原因:

sean white, chief r&d officer of mozilla
“webassembly已经在改变网络给人们带来新的引人注目的内容的方式,并赋予开发者和创造者在网络上做最好工作的能力。到目前为止,这都是通过浏览器实现的,但是有了wasi,我们可以将webassembly和网络的优势传递给更多的用户、更多的地方、更多的设备,并作为更多体验的一部分。”

tyler mcmullen, cto of fastly
“我们正在将webassembly超越浏览器,作为在我们的edge cloud中快速、安全执行代码的平台。尽管我们的edge和浏览器在环境上有所不同,但wasi意味着webassembly的开发人员不必将他们的代码移植到每个不同的平台上。”

myles borins, node technical steering committee director
“webassembly可以解决node?最大的问题之一:获得接近原生的速度,并像使用native模块一样重用使用c和c++等其他语言编写的代码,同时仍然保持可移植性和安全性。标准化这个系统接口是实现这一目标的第一步。”

laurie voss, co-founder of npm
“npm对此感到非常的兴奋,因为webassembly显示了其在扩展npm生态系统能力、以及极大地简化让原生代码在服务器端javascript程序中运行的过程的潜力。我们期待着这一进程的结果。”

so that’s the big news! ??

目前有三种wasi的实现:

wasmtime, mozilla 的 webassembly runtime lucet, fastly 的 webassembly runtime a browser polyfill

你可以观看这个视频来看看wasi的实战(需要*):youtube

如果你想更多地了解这个系统接口应该如何工作,请原文。

------------- the end -------------