Wasmerは、Rustで書かれた高速JavaScriptランタイムの正式版「WinterJS 1.0」を発表した。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
WebAssembly(Wasm)ランタイムを開発するWasmerは2024年3月12日(米国時間)、Rustで書かれた高速JavaScriptランタイムの正式版「WinterJS 1.0」を発表した。
WinterJSは、WinterCG仕様と互換性があり、「SpiderMonkey」エンジンを使ってJavaScriptを実行し、非同期ランタイム「Tokio」を使ってHTTPリクエストとJSイベントループを処理する。WebAssemblyにコンパイルすることもできるため、同社のサーバレスアプリケーションプラットフォーム「Wasmer Edge」で完全に実行可能な初の本番グレードランタイムでもあるとしている。
Wasmerは、WinterJS 1.0の特徴について以下のように説明している。
WinterJS 1.0は、ネイティブに実行すると、15万リクエスト/秒を処理できる。WASIXを使ってWasmにコンパイルした場合は、2万リクエスト/秒の処理が可能だ。WASIXは、WebAssemblyでネットワークやファイル、メモリなどのシステムリソースを抽象化するAPI仕様であるWASIを、POSIX(Portable Operating System Interface)対応に拡張したものだ。
Wasmerは、2024年2月に「MacBook Pro M3 Max」(64GB RAM)を使って行った以下のベンチマーク結果を紹介し、WinterJSは「Bun」「WorkerD」「Node」よりも高速だとしている。
WinterCG(Web-interoperable Runtimes Community Group:Web相互運用性JavaScriptランタイムコミュニティーグループ)は、Cloudflare、Vercel、Shopify、オープンソースプロジェクトの「Node.js」と「Deno」それぞれの主要コントリビューターが2022年に創設した、W3C(World Wide Web Consortium)のコミュニティーグループだ。「Cloudflare Workers」(サーバレスプラットフォーム)、Node.js(サーバサイドJavaScript実行環境)、Deno(JavaScriptとTypeScriptのランタイム環境)など、Webブラウザ以外のJavaScript実行環境における標準APIの相互運用可能な実装に焦点を当てている。
WinterJSは、データフェッチ、ファイル、ストリーム、テキストエンコーダー、暗号化といったAPIセットでWinterCG仕様をサポートしている。
Wasmerは、WinterJSでほとんどのフロントエンドフレームワークを動作させることを目指し、Cloudflare APIとの互換性を確保することを選択した。
Cloudflare Workerのワークロードをサポートするために、import構文によるESモジュールのサポート、Node.js互換APIのサポート、「_routes.json」による呼び出しルートのサポート、ファイルシステム構造のサポート、CloudflareのWinterCGカスタムフェッチAPIのサポートに取り組んだという。
Cloudflare Workers APIとの互換性により、WinterJSは以下のフレームワークを完全にサポートするようになり、フレームワークによって生成された静的なWebサイトを提供するだけでなく、下記のフレームワークによるサーバサイドレンダリング(SSR)も可能にした。
Wasmerは、WebAssemblyにコンパイルしたWinterJSをWasmer Edgeで実行することで、例えばNext.jsフロントエンドをVercelからWasmer Edgeに移行し、はるかに低コストでローカルで完全に再現することが可能になると述べている。
Copyright © ITmedia, Inc. All Rights Reserved.