サーバサイドJavaScriptの標準策定を目指す「WinterTC」がECMA International傘下で始動、W3CのWinterCGから移行
W3CでサーバサイドJavaScriptを中心とした非Webブラウザ環境におけるJavaScriptの互換性について議論してきた「Web Interoperable Runtimes Community Group 」(WinterCG) とECMA Internationalは、サーバサイドJavaScriptランタイムにおけるAPIの互換性を実現するための新グループをECMA International傘下の「TC55 – Web-interoperable server runtimes」(WinterTC)として設立すると発表しました。
WinterTCには、Node.js、Deno、Verel、Fastly、Netlify、Shopifyなどを始めとする企業や団体が参加しています。
WinterCGからWinterTCへ移行する理由
2022年5月に設立されたW3CのWinterCGは、非WebブラウザにおけるJavaScriptの互換性を議論するための誰でも参加できるオープンな場として、W3Cのメンバーでなくとも誰でも参加できるコミュニティグループとして発足しました。
WinterCGは、その成果として「Minimum Common Web Platform API」などのレポートを公開してきました。
しかしコミュニティグループはW3Cの仕組みとして標準の策定をすることができないため、標準を策定できるワーキンググループや技術委員会を形成する必要がありました。
そこで2024年12月、 ECMA Internationalの55番のテクニカルコミッティー(TC55)として「WinterTC」が設立されたのです。
ECMA Internationalは多くのITエンジニアがご存じの通り、JavaScriptの標準であるECMAScriptの仕様策定を行うTC39を傘下に持つ団体です。
今回設立されたWinterTC/TC55も、TC39と同様にECMA Internationalのテクニカルコミッティーと位置づけられています。
WinterTCが目指すもの
WinterTCでは、主に以下のことを目指すと説明されています。
1つ目は、サーバサイドのJavaScriptランタイムが、既存のWeb標準(Web Platform API)をどのように実装するのが適切であるのか、WebブラウザのAPIの実装からどの程度逸脱できるのかを規定し、ドキュメントとすること。
2つ目は、Web標準(Web Platform API)の仕様策定者に対して、非Webブラウザランタイムの視点からフィードバックを提供し、将来のWeb標準に対する変更や追加に関して十分な情報に基づいた意志決定ができるようにすること。
3つ目は、Webブラウザ(Web Platform)にとっては強力すぎて不要であったり、セキュリティモデルに適合しないかもしれないが、一方でサーバサイドのJavaScriptランタイムには最適であるような、包括的なAPIサーフェイスの一部となるような新しいAPIを開発し、規定すること。
ただし新しいWeb標準のAPIが必要な場合や、既存の仕様に変更が必要だとされる場合、その追加や変更に関してはWHATWGやW3Cなどの既存のWeb標準を開発する組織において開発が行われることとしています。
その際、WinterTCはそれらに関する要件を発表し、WinterTCとその標準化団体の両方に所属するメンバーを通じて追加や変更に関する協力をするとのことです。
一方でWintertCは、既存のWeb標準にあるAPIと重複するような新しいサーバーサイドJavaScriptランタイムのためのAPIを作る意志はなく、既存のWeb標準のAPIがサーバサイドJavaScriptランタイムのニーズと重複する場合には、そのAPIに対してどのような変更が望ましいかを検討し、それらの変更が仕様に組み込まれた後にそのAPIを「Minimum Common API」に追加するとしています。
WinterTCによる現在の取り組み
現在、WinterTCの取り組みとして以下の項目があると説明されています。
Minimum Common API
サーバサイドJavaScriptランタイムが少なくとも実装すべき最小限のAPI
Sockets API
非Webブラウザ環境においてTCPコネクションを確立するためのAPI
CLI API
コマンドへの引数(argv)や環境変数などを設定するコマンドラインインターフェイスのためのAPI
下記については、既存のWeb標準の仕様策定団体と協力し、APIをサーバサイドJavaScriptランタイムに適合するように検討しているとしています。
Fetch
Fetchをサーバサイドにより適合するため、WHATWGで改良を進めるための要件を収集中。
Web Crypto Streams
Web Crypto APIにおけるストリーミングサポートを定義するために要件を収集中。WICGとWeb Application Security Working Groupで改良が進められる予定。