Bytecode Alliance宣布服务器端WebAssembly发展愿景

2020 年 11 月 14 日

Bytecode Alliance宣布服务器端WebAssembly发展愿景

Bytecode Alliance成立一周年之际,WebAssembly 开发者 Lin Clark 和 Till Schneidereit 在博客中宣布,Fastly 已经从 Mozilla 手中收购了部分 WebAssembly 团队。在未来,Mozilla 将继续关注浏览器中的 WASM,尤其是 Firefox 浏览器。另一方面,Fastly 将管理服务器端的 WASM,包括 Fastly 自己的商业 WebAssembly 服务器产品 Compute@Edge。这也导致了 Mozilla 的 wasmtime 和 Fastly Lucet Wasm VM 项目的合并。Lucet 和 wasmtime 共享了很多代码,这次合并确保了它们未来的开发将继续沿着同样的方向进行。


在博文中,Clark 和 Schneidereit 描绘了他们对服务器端 WASM 未来的技术愿景。他们的核心观点是 nanoprocess 模型,它为 WASM 程序提供了一个安全且轻量级的容器,但仍然可以让沙箱内的 WASM 程序很容易与其他 WASM 程序及系统的其他部分通信。


从技术上讲,WASM 在通往nanoprocess的关键路径上有三个增强提议。


第一个增强是 WebAssembly Systems Interface(WASI),它为 WASM 程序提供了一种调用宿主系统标准库函数的方法。在服务器端,也就是指访问文件系统、环境变量、随机数和套接字。现在,多个领先的 WASM 实现都支持 WASI。


WASI 的实现在完整性和性能方面各不相同。例如,谷歌的 V8 使用主机环境的 JavaScript 运行时作为访问操作系统的代理,因此速度很慢。


WASI 方法并不仅限于访问操作系统标准库。这篇博文还讨论了 Bytecode Alliance 倡导的其他类似 WASI 的扩展,比如wasi-socketwasi-nn。除了 Bytecode Alliance 之外,还有很多项目可以让 WASM 访问更多的主机功能。例如,在区块链领域,以太坊 WebAssembly (Ewasm)也是 WASI 的一种形式,它可以让 WASM 访问主机以太坊区块链的用户帐户和交易服务。


第二个增强是接口类型,它可以让 WASM 程序与外部程序通信,无论是在主机操作系统中,还是内嵌了 WASM 的语言运行时(例如,Node.js)中。这个建议还处于早期阶段,还没有得到编译器工具链的支持。但是,wasmtimeSecond State VM已经支持它。目标是让 WASM 程序更强大和具备更强的嵌入能力。


综合起来,WASI 和接口类型让开发人员可以充分利用原生主机系统,同时保持 WASM 沙箱的安全性。早期的一个例子是 Second State VM 为其 WASM 程序提供原生 GPU 访问能力来进行 tensorflow 模型推断。


nanoprocess 的第三个元素是模块链接,除了让 WASM 程序可以调用主机函数外,还可以相互调用。声明模块依赖关系的能力可以支持类似 Node.js NPM 和 Rust Crate.io这样的公共包管理系统,为已经启动的WAPM工作提供补充。


这篇博文参引用了 Bytecode Alliance 为服务器端的 WASM 设计的愿景。与此同时,WASM 开源社区现在比 Bytecode Alliance 要大得多。现在有多种 WASM 虚拟机实现、编程语言的编译器工具链以及主机操作系统和环境(例如,Node.jsDeno区块链)。


原文链接

Bytecode Alliance Lays out Plans for WebAssembly on the Server-side


2020 年 11 月 14 日 11:002079

评论

发布
暂无评论
发现更多内容

对不起,学会这些 Linux 知识后,我有点飘

cxuan

Linux 后端 操作系统 计算机

关于国际化语言 Intl

西贝

JavaScript 前端 国际化 格式化

古北水镇的夜

张晓楠

生活 摄影

典型的大型互联网应用系统的技术方案和手段

架构师训练营第三周作业

Wee权

JDK 中的栈竟然是这样实现的?

王磊

Java 数据结构和算法

“海外同步优惠”与“中国专享折扣”十大必败榜抢先放送

爱极客侠

LeetCode题解:111. 二叉树的最小深度,递归,JavaScript,详细注释

Lee Chen

前端进阶训练营

产品分析

时间是一个人最好的证明

产品经理 产品设计

MySQL事务隔离级别

长沙造纸农

MySQL 事务隔离级别 mysql事务 事务 MySQL 运维

Apache Doris在云真信智能决策分析平台的应用实践

DorisDB

数据库 数据仓库 金融科技

架构师训练营第1期第四周作业二

道长

架构师训练营第 1 期

31道Java核心面试题,一次性打包送给你

小Q

Java 学习 程序员 架构 面试

用NOSql给高并发系统加速

架构师修行之路

nosql redis 分布式 微服务

手把手教你AspNetCore WebApi:Serilog(日志)

AI代笔

ASP.NET Core web api serilog

架构师训练营第四章 系统架构总结

郎哲158

做好分库分表其实很难之二

架构师修行之路

微服务 分库分表

记一次MySQL日期范围查询优化

墨凡

MySQL SQL优化

架构师训练营第 1 期 - 第四周学习总结

Anyou Liu

架构师训练营第 1 期

建筑行业区块链应用场景是怎样的

CECBC区块链专委会

区块链 建筑行业

区块链是一个不知道要解决什么问题的解决方案吗?

CECBC区块链专委会

比特币 区块链 银行

区块链教育 丨 首批区块链专业新生正式入学

CECBC区块链专委会

区块链技术 区块链教育

架构师作业第三周学习总结

Wee权

震精,京东T8工程师每天熬夜到天明,竟只是为一套编程实战文档

周老师

Java 编程 程序员 架构 面试

从联想ThinkStation工作站,窥见工具文明的新纪元

脑极体

内存条的讲解

亚兰—硅的传奇official

原创 内存 硬件 计算机 哔哩哔哩

LeetCode题解:104. 二叉树的最大深度,递归,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

开源数据库这么香,为什么我们还要下功夫自研?

华为云开发者社区

数据库 开源 数据

架构1期第四周作业1-大型互联网系统技术梳理

道长

架构师训练营第 1 期

讲一讲我所认为的「人生三最」,你或许能够参悟到什么

非著名程序员

程序员 个人成长 时间管理 精力管理

Spring Cloud 微服务实践(7) - 日志

xiaoboey

kafka 微服务 Spring Cloud 日志 spring cloud stream

AI如何在普惠金融的探索中发挥作用?

AI如何在普惠金融的探索中发挥作用?

Bytecode Alliance宣布服务器端WebAssembly发展愿景-InfoQ