PROPOSED WebAssembly Working Group Charter

The mission of the WebAssembly Working Group is to standardize a size- and load-time-efficient format and execution environment, allowing compilation to the web with consistent behavior across a variety of implementations.

Join the WebAssembly Working Group.

This proposed charter is available on GitHub (source, rendered). Feel free to raise issues.

Charter Status See the group status page and detailed change history.
Start date [dd monthname yyyy] (date of the "Call for Participation", when the charter is approved)
End date [dd monthname yyyy] (Start date + 2 years)
Chairs
  • Derek Schuff (Google)
  • Luke Wagner (Fastly)
Team Contacts Eric Prud'hommeaux (0.15 FTE)
Meeting Schedule Teleconferences: We will meet by teleconference approximately once per month.
Face-to-face: we will meet during the W3C's annual Technical Plenary week; additional face-to-face meetings may be scheduled by consent of the participants, usually no more than 3 per year.

Since the inception of the Web, various technologies have been developed to allow “native” applications on the Web. Techniques such as user consent with digital signatures and Virtual Machines with different capabilities than JavaScript failed to be robust in the face of increasingly high security requirements. Later efforts like Native Client, which featured robust security, failed to achieve cross-browser adoption. Cross-compilation to JavaScript using Emscripten, especially using the machine-optimization subset called asm.js, achieved some degree of success. However, consistent cross-browser performance, shared memory threads, and other machine features have proved elusive.

The WebAssembly format and execution environment address the shortcomings of those previous efforts.

Scope

The scope of the WebAssembly Working Group comprises addressing the need for native-performance code on the Web in applications ranging from 3D games to speech recognition to codecs—and in any other contexts in which a common mechanism for enabling high-performance code is relevant—by providing a standardized portable, size-, and load-time-efficient format and execution environment that attempts to maximize performance and interoperate gracefully with JavaScript and the Web, while ensuring security and consistent behavior across a variety of implementations.

Revisions to the WebAssembly Recommendation will be proposed periodically, capturing changes that have been incrementally adopted by the Working Group. Each successive version will incrementally incorporate improvements to support more machine level operations, increase performance, or to better inter-operate with embedding platforms, including features such as:

Deliverables

Updated document status is available on the group publication status page. In-flight featuers are listed on the WebAssembly proposals page

Draft state indicates the state of the deliverable at the time of the charter approval. The Working Group intends to publish the latest state of their work as Candidate Recommendation (with Snapshots) and does not intend to advance their documents to Recommendation.

Normative Specifications

The Working Group will deliver new revisions of the following W3C normative specifications:

WebAssembly Core Specification

This document describes the core WebAssembly standard, a safe, portable, low-level code format designed for efficient execution and compact representation.

Draft state: Editor's Draft

Expected completion: continuous developement with evergreen publication

Adopted Draft: WebAssembly Specification, <https://webassembly.github.io/spec/core/>, 2022-04-05.

Exclusion Draft: The title, stable URL, and publication date of the most recent Exclusion Draft. Exclusion period began; Exclusion period ended. (this charter assistant helps in producing the list. use the proper wgid)

Exclusion Draft Charter: The stable URL of the Working Group charter under which the most recent Exclusion Draft was published.

WebAssembly JavaScript Interface

This document describes the integration of WebAssembly with the broader web platform.

Draft state: Editor's Draft

Expected completion: continuous developement with evergreen publication

Adopted Draft: WebAssembly Specification, <https://webassembly.github.io/spec/js-api/>, 2022-04-05.

Exclusion Draft: The title, stable URL, and publication date of the most recent Exclusion Draft. Exclusion period began; Exclusion period ended. (this charter assistant helps in producing the list. use the proper wgid)

Exclusion Draft Charter: The stable URL of the Working Group charter under which the most recent Exclusion Draft was published.

WebAssembly Web API

This document provides an explicit JavaScript API for interacting with WebAssembly.

Draft state: Editor's Draft

Expected completion: continuous developement with evergreen publication

Adopted Draft: WebAssembly Specification, <https://webassembly.github.io/spec/web-api/>, 2022-04-05.

Exclusion Draft: The title, stable URL, and publication date of the most recent Exclusion Draft. Exclusion period began; Exclusion period ended. (this charter assistant helps in producing the list. use the proper wgid)

Exclusion Draft Charter: The stable URL of the Working Group charter under which the most recent Exclusion Draft was published.

Other Deliverables

Other non-normative documents may be created or maintained such as:

  • An OCaml reference interpreter
  • Use case and requirement documents;
  • Test suite and implementation report for the specification;
  • Primer or Best Practice documents to support web developers when designing applications.

Success Criteria

Each specification should contain separate sections detailing all known security and privacy implications for implementers, Web authors, and end users.

There should be testing plans for each specification, starting from the earliest drafts.

Each specification should contain a section on accessibility that describes the benefits and impacts, including ways specification features can be used to address them, and recommendations for maximising accessibility in implementations.

To promote interoperability, all changes made to specifications should have tests.

All new features should be supported by at least two intents to implement before being incorporated in the specification.

Coordination

For all specifications, this Working Group will seek horizontal review for accessibility, internationalization, performance, privacy, and security with the relevant Working and Interest Groups, and with the TAG. Invitation for review must be issued during each major standards-track document transition, including FPWD. The Working Group is encouraged to engage collaboratively with the horizontal review groups throughout development of each specification. The Working Group is advised to seek a review at least 3 months before first entering CR and is encouraged to proactively notify the horizontal review groups when major changes occur in a specification following a review.

Additional technical coordination with the following Groups will be made, per the W3C Process Document:

W3C Groups

WebAssembly Community Group
Coordination on seed specification to begin the standards process.
Web Applications Working Group
Coordination on WebAssembly-specific bindings to existing Web APIs (or interpreting existing WebIDL as it relates to WebAssembly).

External Organizations

TC39 - ECMAScript Standards Body
Coordination on integration with JavaScript, particularly on SharedArrayBuffer and its memory model
Khronos Group
Coordination on WebAssembly-specific bindings to WebGL.
WebGPU Community Group
Coordinate on WebAssembly interoperability, performance, and ergonomics.

Participation

To be successful, this Working Group is expected to have 6 or more active participants for its duration, including representatives from the key implementors of this specification, and active Editors and Test Leads for each specification. The Chairs, specification Editors, and Test Leads are expected to contribute half of a working day per week towards the Working Group. There is no minimum requirement for other Participants.

The group encourages questions, comments and issues on its public mailing lists and document repositories, as described in Communication.

The group also welcomes non-Members to contribute technical submissions for consideration upon their agreement to the terms of the W3C Patent Policy.

Participants in the group are required (by the W3C Process) to follow the W3C Code of Ethics and Professional Conduct.

Communication

Technical discussions for this Working Group are conducted in public: the meeting minutes from teleconference and face-to-face meetings will be archived for public review, and technical discussions and issue tracking will be conducted in a manner that can be both read and written to by the general public. Working Drafts and Editor's Drafts of specifications will be developed in public repositories and may permit direct public contribution requests. The meetings themselves are not open to public participation, however.

Information about the group (including details about deliverables, issues, actions, status, participants, and meetings) will be available from the WebAssembly Working Group home page.

Most WebAssembly Working Group teleconferences will focus on discussion of particular specifications, and will be conducted on an as-needed basis.

This group primarily conducts its technical work on GitHub issues. The public is invited to review, discuss and contribute to this work.

The group may use a Member-confidential mailing list for administrative purposes and, at the discretion of the Chairs and members of the group, for member-only discussions in special cases when a participant requests such a discussion.

Decision Policy

This group will seek to make decisions through consensus and due process, per the W3C Process Document (section 5.2.1, Consensus). Typically, an editor or other participant makes an initial proposal, which is then refined in discussion with members of the group and other reviewers, and consensus emerges with little formal voting being required.

However, if a decision is necessary for timely progress and consensus is not achieved after careful consideration of the range of views presented, the Chairs may call for a group vote and record a decision along with any objections.

To afford asynchronous decisions and organizational deliberation, any resolution (including publication decisions) taken in a face-to-face meeting or teleconference will be considered provisional. A call for consensus (CfC) will be issued for all resolutions (for example, via email, GitHub issue or web-based survey), with a response period from one week, depending on the chair's evaluation of the group consensus on the issue. If no objections are raised by the end of the response period, the resolution will be considered to have consensus as a resolution of the Working Group.

All decisions made by the group should be considered resolved unless and until new information becomes available or unless reopened at the discretion of the Chairs or the Director.

This charter is written in accordance with the W3C Process Document (Section 5.2.3, Deciding by Vote) and includes no voting procedures beyond what the Process Document requires.

Patent Policy

This Working Group operates under the W3C Patent Policy (Version of 15 September 2020). To promote the widest adoption of Web standards, W3C seeks to issue Web specifications that can be implemented, according to this policy, on a Royalty-Free basis. For more information about disclosure obligations for this group, please see the licensing information.

Licensing

This Working Group will use the W3C Software and Document license for all its deliverables.

About this Charter

This charter has been created according to section 3.4 of the Process Document. In the event of a conflict between this document or the provisions of any charter and the W3C Process, the W3C Process shall take precedence.

Charter History

The following table lists details of all changes from the initial charter, per the W3C Process Document (section 4.3, Advisory Committee Review of a Charter):

Charter Period Start Date End Date Changes
Initial Charter 2017-08-03 2019-07-31 none
Charter Extension 2019-08-01 2019-12-31 (extended until end of February 2020) none
Approved 9 March 2020 28 February 2022

The WebAssembly spec has been split into 3 parts.

... ... ...

Switch to 2020 Patent Policy.

Change log

Changes to this document are documented in this section.