サーバサイドのJavaScriptランタイム「WinterJS」登場。Rustで書かれ、WebAssembyにコンパイル可能なService Workerサーバ

2023年10月30日

WebAssemblyランタイム「Wasmer」の開発元として知られているWasmer社は、新しいサーバサイドのJavaScriptランタイム「WinterJS」を発表しました

WinterJSはRustで書かれた高速なService Workerサーバであり、オープンソースとして公開されています

WinterCGとWASIXに対応

WinterJSの仕様は非Webブラウザ系JavaScriptランタイムのコード互換を目指す「Web-interoperable Runtimes Community Group」(WinterCG)に準拠しており、これを基にすることで同じくWinterCGに準拠したCloudflare WorkersやDeno Deployなどの他のJavaScriptランタイムとの互換性を実現するとしています。

参考:Deno、Node.js、Cloudflare Workersなど、非Webブラウザ系JavaScriptランタイムのコード互換を目指す「Web-interoperable Runtimes Community Group」(WinterCG)が発足

また、WinterJSはRustで書かれているため、このRustのコードからWinterJSのWebAssemblyバイナリを生成し、Wasmer社のWebAssemblyランタイムで実行することも可能。

このとき、「WASI」(WebAssembly System Interface)を拡張してPOSIX対応にするというWasmerが提唱する新技術「WASIX」にも対応します。

参考:WebAssemblyをPOSIX対応に拡張した「WASIX」登場、bashやcurl、WebサーバなどLinuxアプリが実装可能に。Wasmerが発表

WinterJSのJavaScriptエンジンには、FirefoxのSpiderMonkeyを採用。SpiderMonkeyはRust、C++、Rustで作られており、コンパイルによりWASI対応のWebAssemblyバイナリにコンパイル可能となっています。WinterJSでは、これを基にWASIX対応へと移植しました。

WinterJS発表の狙いは、Wasmer Edgeのターゲットを広げるため

Wasmer社は、エッジ環境でWebAssemblyランタイムを提供する分散プラットフォーム型のサービス「Wasmer Edge」を提供しています。

これは、Denoの開発元であるDeno LandがJavaScriptランタイムであるDenoをオープンソースで開発することで普及を目指し、それを背景に自社の商用サービスであるDeno Deployでマネタイズを図ろうとしているのと同様といえます。

つまりWasmer社はWebAssemblyランタイムのWasmerをオープンソースで開発し、さらにWebAssemblyでより高度なアプリケーションが開発できるようにWASIXのような仕組みを率先して開発、実装することでWasmerをより魅力的なWebAssemblyランタイムとした上で、自社の商用サービスであるWasmer Edgeでマネタイズする、というのがWasmer社のビジネスモデルだと言えるでしょう。

今回、Wasmer社がWebAssemblyにコンパイル可能なJavaScriptランタイムとしてWinterJSを発表したのは、WinterJSをWasmer Edgeに展開することで、Wasmer EdgeをWebAssemblyのアプリケーションだけでなくJavaScriptアプリケーションのプラットフォームとしても提供可能にするためでしょう。

これによりWasmer Edgeのターゲットとなる市場が大きく広がるわけで、それはつまり同社にとってのビジネスチャンスが広がることを意味します。Wasmer社にとって、WinterJSの位置づけはおそらく非常に重要なものになるはずです。

と同時にこれは、JavaScriptランタイムとともにWebAssemblyランタイムもプラットフォームサービスとして提供しているDeno DeployやCloudflare Workersなど、多くの既存のJavaScriptランタイムのプラットフォームサービスと競合していくことを意味するわけです。

ただでさえ、現時点でサーバサイドのJavaScriptランタイムとそのプラットフォームには多くの選択肢があり、激しい競争が始まっている分野です。WinterJSの発表は、この競争をさらに厳しいものにしていくことになるのでしょう。

あわせて読みたい

JavaScript WebAssembly プログラミング言語




タグクラウド

クラウド / AWS / Azure / Google Cloud
コンテナ / Docker / Kubernetes
クラウドネイティブ / サーバレス
クラウド障害 / 運用・監視

プログラミング言語 / 開発ツール
JavaScript / Java / .NET / WebAssembly
HTML/CSS / Web標準

アジャイル開発 / スクラム / DevOps / CI/CD
ソフトウェアテスト・品質
ローコード/ノーコード開発

データベース / RDB / NoSQL / 機械学習・AI
Oracle Database / MySQL / PostgreSQL
Office / 業務アプリケーション

ネットワーク / HTTP / QUIC / セキュリティ
OS / Windows / Linux / VMware
ハードウェア / サーバ / ストレージ

業界動向 / 働き方 / 給与・年収
編集後記 / 殿堂入り / おもしろ

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本