2023年9月26日,W3C Web & Networks 兴趣组发布云-边-端协同的用例与需求备忘草案。文档介绍了云、边、端协同机制以及相关的标准化用例和需求,探讨了如何通过边缘计算资源改进 Web 应用使用的传统客户端/服务器体系架构,以及为此需要哪些新的可互操作技术。
更多内容,参见消息原文。
2023年9月26日,W3C Web & Networks 兴趣组发布云-边-端协同的用例与需求备忘草案。文档介绍了云、边、端协同机制以及相关的标准化用例和需求,探讨了如何通过边缘计算资源改进 Web 应用使用的传统客户端/服务器体系架构,以及为此需要哪些新的可互操作技术。
更多内容,参见消息原文。
2019年12月5日,W3C WebAssembly 工作组发布 WebAssembly 正式推荐标准(W3C Recommendation),为 Web 带来一种支持代码在浏览器中运行的新语言。
WebAssembly Core Specification 定义了一个低级虚拟机,模拟运行该虚拟机的许多微处理器的功能。 通过即时编译或解析,WebAssembly 引擎使编写的代码可以以接近本地平台的速度运行。.wasm 资源类似于 Java .class 文件,它包含静态数据和对该静态数据进行操作的代码段。 与 Java 不同,WebAssembly 为其他编程语言(如C/C++ 和 Rust)提供了一个高效的编译目标以便它们能够在网络上运行。
WebAssembly Web API 定义了一个基于 Promise 的接口,用于请求和执行 .wasm 资源。 .wasm 资源的结构经过优化,允许在检索整个资源之前开始执行,这进一步增强了 WebAssembly 应用程序的响应能力。
WebAssembly JavaScript Interface 提供了一个 JavaScript 接口,用于调用并将参数传递给 WebAssembly 函数。 在 Web 浏览器中,WebAssembly 与主机环境的交互都通过 JavaScript 进行管理,这意味着 WebAssembly 依托 JavaScript 高度精心设计的安全模型。
WebAssembly 是为高效执行和紧凑表示而设计的运行在现代处理器(包括浏览器)中的一种快速、安全、可移植的低级代码格式。该技术使 Web 平台能够更有效地执行计算密集型算法,这使全新的用户体验类别变得切实可行。 由于 WebAssenbly 是与平台无关的执行环境,因此它也可以用于任何其他计算机平台。
2019年7月18日,W3C WebAssembly 工作组发布三份候选推荐标准(Candidate Recommendation)并征集参考实现(Call for Implementations):
更多内容,请参阅消息原文。
2018年2月15日,W3C 的 WebAssembly 工作组发布了三份标准的首个公开工作草案(First Public Working Draft):
- WebAssembly核心规范:描述了核心WebAssembly标准的第一个版本,WebAssembly尝试为开发高效执行、更紧凑表达形式(compact representation)的Web应用提供所需的安全、可移植、支持底层代码格式支持等。
- WebAssembly JavaScrip 接口:提供一个显式的JavaScript API,使Web应用可以与WebAssembly交互。
- WebAssembly Web API:描述了一个在更广泛的Web平台集成WebAssembly的方法。
WebAssembly是一个面向多种应用场景的虚拟指令架构,能够嵌入到不同的应用环境,支持高性能的Web应用。WebAssembly的设计目标是为应用提供一种快速、安全、可移植语义、有效和可移植的表达方式。WebAssembly 的代码也可以帮助更加容易进行 Web浏览器等各类执行环境的代码调试。
2017年8月3日,W3C正式启动了 WebAssembly工作组(Web Assembly WorkingGroup)。W3C的 Bradley Nelson 在官方博客上发布文章,概括介绍了该工作组的定位。
WebAssembly是一个虚拟指令集体系架构(virtual ISA),整体架构包括核心的ISA定义、二进制编码、程序语义的定义与执行,以及面向不同的嵌入环境(如Web)的应用编程接口(WebAssembly API)。其初始目标是为C/C++等语言编写的程序经过编译,在确保安全和接近原生应用的运行速度更好地在Web平台上运行。
WebAssembly支撑了一系列的应用场景,包括但不局限于:
-在线游戏
-视频与音频的编解码器(Codecs)、定制化的数据压缩、3D模型
-媒体编辑工具
-语音合成与语音识别
-客户端的计算机视觉(Client-side computer vision)
-将现有的胖客户端(应用程序)移植到Web平台
-任何需要在用户终端以极致速度运行的程序
WebAssembly也将为Web平台提供更多的编程语言选择,它可能支持各种良好定义的预编译语言与Web的集成和嵌入。WebAssembly不仅仅是将C/C++或Rust等预编译语言集成进来,同时也可以支持类似Lua、Python以及Ruby等解释型语言。我们希望在WebAssembly中更好的支持受控对象(managed objects)以及DOM+JS binding,这样,就可以支持在Web平台上连接更加丰富的程序设计语言家族。
即便开发者只基于Javascript开发应用,WebAssembly也可以为JavaScript提供更加丰富的、基于其他程序设计语言的、功能强大的库,支持类似物理模拟(physical simulation)、数字信号处理、机器学习等需要更强性能的计算场景。
关于WebAssembly仍有很多新的机制要去探索,我们会继续保留WebAssembly社区组并将其作为新机制的孵化器。我们计划让 Wasm 成为一个更好的编译目标,并支持诸如线程(threads)、受控对象(managed objects)、直接DOM/JS绑定、单指令流多数据流(SIMD)、内存映射(memory mapping)等机制。
随着W3C WebAssembly工作组的成立,我们希望尽快推动 WebAssembly规范的标准化进程。
欢迎您关注W3C在WebAssembly方面的努力,更多信息,请参阅W3C WebAssembly工作组,本文博客文章英文原文,及W3C的其他官方博客讨论。