The WebAssembly JavaScript Promise Integration (JSPI) API is a standard-track effort of the WebAssembly WG (via its CG) to allow WebAssembly applications to access asynchronous APIs, under the constraint that the only changes are to the JS API and not to core WebAssembly (or to JavaScript)
Relevant time constraints or deadlines: There is no specific deadline; however, a second browser implementation is anticipated in 2023H1.
The group where the work on this specification is currently being done: WebAssembly Community Group
The group where standardization of this work is intended to be done (if current group is a community group or other incubation venue): WebAssembly Working Group
Major unresolved issues with or opposition to this specification: none
This work is being funded by:
You should also know that...
The purpose of this API is to allow WebAssembly applications originally written against synchronous APIs to work with APIs that are mostly asynchronous in nature (i.e., Web APIs). WebAssembly code is typically compiled from languages like C++ that do not have a rich history of asynchronous functionality.
We have been careful in the design to not require any changes to either the JavaScript language or the WebAssembly instruction set.
We have been careful to constrain the design in such a way that JavaScript applications cannot use JSPI to implement alternate suspension mechanisms to those already part of the Web ecosystem. (I.e., JS programs cannot use JSPI to suspend themselves.)
This is part of a larger effort to bring coroutining capabilities to WebAssembly. However, this is not dependent on those efforts and also has benefits that do not rely on 'core' stack switching.
We'd prefer the TAG provide feedback as (please delete all but the desired option):
☂️ open a single issue in our GitHub repo for the entire review. Note, if appropriate, it is also possible to initiate discussion topics on the repo
Wotcher TAG!
I'm requesting a TAG review of JSPI.
The WebAssembly JavaScript Promise Integration (JSPI) API is a standard-track effort of the WebAssembly WG (via its CG) to allow WebAssembly applications to access asynchronous APIs, under the constraint that the only changes are to the JS API and not to core WebAssembly (or to JavaScript)
Further details:
You should also know that...
We'd prefer the TAG provide feedback as (please delete all but the desired option):
☂️ open a single issue in our GitHub repo for the entire review. Note, if appropriate, it is also possible to initiate discussion topics on the repo