WebAssemblyとJavaScriptの非同期処理を橋渡しするAPI「JSPI」、Google V8が実験的に実装

今回は「WebAssemblyとJavaScriptの非同期処理を橋渡しするAPI「JSPI」、Google V8が実験的に実装」についてご紹介します。

関連ワード (動作、設定、課題等) についても参考にしながら、ぜひ本記事について議論していってくださいね。

本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。


Google Chromeなどに組み込まれているJavaScript/WebAssemblyエンジンのV8の開発チームは、WebAssemblyとJavaScriptの非同期処理の橋渡しを行うAPI「JavaScript Promise Integration API」(JSPI)を実験的に実装したことを明らかにしました。

fig

最近のモダンなWeb APIの多くが非同期型になっており、APIを呼び出した後も別の処理が可能で、呼び出し先の処理が完了すると通知されるようになっています。

非同期処理のAPIでは、呼び出し時には結果が返る代わりに、将来の処理完了時に値が提供されるPromiseオブジェクトを返しますが、WebAssemblyではPromiseの操作ができないため、非同期処理のAPIの扱いが課題となっていました。

そこでJSPIが実装されたわけです。

JSPIは同期型と非同期型のアプリケーションの橋渡し

JSPIとはどのようなものか、「Introducing the WebAssembly JavaScript Promise Integration API」から説明を引用します。

The JSPI is an API that bridges the gap between synchronous applications and asynchronous Web APIs. It does so by suspending the application when it issues a synchronous API call and resuming it when the asynchronous I/O operation is completed. Crucially, it does so with very few changes to the application itself.

JSPIは、同期型アプリケーションと非同期型Web APIの間の橋渡しをするAPIです。同期APIを呼び出すとアプリケーションを一時停止し、非同期I/O処理が完了し次第、再開することでこれを実現します。重要なのは、アプリケーション自体にほとんど変更を加えることなく、これを実現できることです。

具体的な動作としては次のようになっています。

The JSPI works by intercepting the Promise returned from an asynchronous API call, suspending the main logic of the WebAssembly application, and returning a Promise from the export that was used to enter the WebAssembly. When the asynchronous API completes the WebAssembly application is resumed so that it can process the results of the API call.

JSPIは、非同期API呼び出しから返されたPromiseを傍受し、WebAssemblyアプリケーションのメインロジックを一時停止します。そしてWebAssemblyに組み込まれたexportsからPromiseを返します。非同期APIが完了すると、WebAssemblyアプリケーションは再開され、API呼び出しの結果を処理できるようになります。

これを実現するために、WebAssemblyモジュールのexportsとimportsをラップする必要がありますが、非同期処理に関連するところだけをラップすればよいと説明されています。

JSPIの標準化も開始へ

JSPIは現時点で実験的実装であるため、利用にはChromeのフラグなどを設定する必要があります。

また、JSPIは標準化の動きを始めており、他のWebブラウザでの実装も期待されています。

COMMENTS


Recommended

TITLE
CATEGORY
DATE
Apple Podcastランキング1位「歴史を面白く学ぶコテンラジオ」を運営するCOTENが8400万円を調達
EdTech
2021-07-02 08:00
リース会社の枠を超えた価値提供–三菱HCキャピタルが考える「アセット+α」のDX戦略
IT関連
2024-01-10 16:41
「ChatGPT」を使用してコードを記述–プロンプト作成のヒントと注意点
IT関連
2023-04-29 04:08
千葉工業大学の宇宙塵探査衛星ASTARISC、大面積膜型ダストセンサーを展開し軌道上実証に成功
IT関連
2022-02-18 12:35
TimeTreeがオンライン会議の日程調整SaaS「Tocaly」の提供を開始
ネットサービス
2021-07-29 15:36
東急不動産やNTTら3社、IOWNサービスを活用し渋谷を環境先進都市のモデルケースへ
IT関連
2023-06-09 03:44
企業の半数以上がゼロトラストを実装中–PwC調べ
IT関連
2021-05-26 21:48
厚労省、新型コロナの注意喚起に「はたらく細胞」起用 YouTubeで無料配信
社会とIT
2021-04-29 09:10
もがくオーディオメーカー コンシューマーオーディオはどこへ行くのか? ゼンハイザー、オンキヨーの身売りで考える :小寺信良のIT大作戦(1/4 ページ)
トップニュース
2021-05-26 19:13
バリュー株の逆襲と「NT倍率」急落、いつまで?–米国株が悩む「高圧経済」
IT関連
2021-03-26 21:51
モバイルが盛り上がりに欠ける中、地味なMWCが閉幕
IT関連
2022-03-05 14:50
テレワーク実施率22% 緊急事態宣言再発令後、低水準
IT関連
2021-01-26 17:59
愛媛県、「LINE WORKS」活用で災害時の体制強化–素早く確実な情報共有目指す
IT関連
2023-05-13 15:56
信用できない大手ハイテク企業の自主規制、今、米国議会の行動が必要とされている
パブリック / ダイバーシティ
2021-03-29 03:36