W3C中国

W3C 发布 WebAssembly 正式推荐标准

WebAssembly black and white logo2019年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 是与平台无关的执行环境,因此它也可以用于任何其他计算机平台。

更多信息,欢迎参阅 W3C 官方新闻稿,以及消息原文

W3C 发布 WebAssembly 核心规范、JavaScript 接口、Web API 三份候选推荐标准

2019年7月18日,W3C WebAssembly 工作组发布三份候选推荐标准(Candidate Recommendation)并征集参考实现(Call for Implementations):

  •       * WebAssembly 核心规范描述了 WebAssembly 核心标准的第一版,专为开发高效执行和紧凑表达形式的 Web 应用而提供所需的安全、可移植、支持底层代码格式的支持等。
  •       * WebAssembly JavaScript 接口提供了一个使 Web 应用可以与 WebAssembly 交互的显式 JavaScript API。
  •       * WebAssembly Web API 描述了在更广泛的 Web 平台集成  WebAssembly 的方法。

 

更多内容,请参阅消息原文

W3C 发布关于 WebAssembly 核心规范、JavaScript接口及 Web API等三份标准首个公开工作草案

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浏览器等各类执行环境的代码调试。

W3C 启动 WebAssembly 工作组

WebAssembly2017年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 社区组(Community Group)已经作为一个交流平台,吸引了浏览器厂商及其他Web技术开发社区的注意。WebAssembly的首个版本已经在4个浏览器引擎上得到实现,并正式进入工作组标准制定流程,在未来成为Web标准的一部分。在此期间,社区组组织了多次面对面讨论会,并基于 github 进行线上的协作。我们也希望在2017年11月的TPAC 2017会议上,吸引更多W3C社区的支持和参与。

随着W3C WebAssembly工作组的成立,我们希望尽快推动 WebAssembly规范的标准化进程。

欢迎您关注W3C在WebAssembly方面的努力,更多信息,请参阅W3C WebAssembly工作组,本文博客文章英文原文,及W3C的其他官方博客讨论

站内搜索

万维网联盟(World Wide Web Consortium, W3C)是Web领域的国际标准化组织,致力开发开放Web标准确保Web的长期发展,实现“尽展Web无限潜能”的使命。

更多内容>>

近期活动

更多内容>>

W3Cx 开放课程

W3C技术标准

查看Web技术标准
- 所有标准
■ Web与产业融合 ■
- 汽车 | 数字出版 | Web与电信
- 娱乐与广播电视 | Web支付 | Web数据
- 物联万维网(WoT) | Web安全
■ Web For All ■
- Web无障碍 | 国际化 | 索引(A to Z)
■ 社区组与商务组 ■
- 所有社区组 | 新建社区组
■ 标准工作组 ■
- 所有标准小组 | 参与指南

更多内容>>

W3C标准翻译

欢迎您加入W3C翻译计划,了解W3C标准和文档翻译情况,帮助提供不同语言的W3C标准规范及文档的志愿者翻译及W3C授权翻译,惠及全球技术社区。

更多内容>>

贡献榜

我们通过贡献榜,感谢您积极参与W3C的标准制定及审阅工作、提供标准及技术文章的中文翻译、参与各类技术研讨会。

更多内容>>

W3C 中文开发者社区

W3C中国目前正在不断加大全球W3C工作的参与力度,并推动了一系列以了解中国行业需求、引导标准制定为主要目的的工作组(WG)、兴趣组(IG)和社区组(CG)。
Web中文兴趣组 | MiniApps工作组 | MiniApps生态社区组 | 弹幕特别任务组 | 中国信息无障碍社区组 | 中文数字出版社区组 | 数据可视化社区组 | 中文文字布局需求特别任务组

更多内容>>

会员链接

相关资源需要使用 W3C账号登录后使用

首页 | 加入工作组 | 申请W3C账号 | 最新会员消息

开发者资源

合作伙伴

  • 北京航空航天大学
  • 北航计算机学院
  • w3ctech