JavaScriptランタイム「WinterJS 1.0」リリース、WasmerがRustで開発CloudflareアプリケーションやReact Server Componentsもサポート

Wasmerは、Rustで書かれた高速JavaScriptランタイムの正式版「WinterJS 1.0」を発表した。

» 2024年03月15日 08時00分 公開
[@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 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の特徴について以下のように説明している。

「Bun」「WorkerD」「Node」との比較、ベンチマーク結果は?

 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」よりも高速だとしている。

JavaScript HTTPサーバのパフォーマンス比較(提供:Wasmer)

WinterCG仕様との互換性

 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仕様をサポートしている。

Cloudflare APIとの互換性

 Wasmerは、WinterJSでほとんどのフロントエンドフレームワークを動作させることを目指し、Cloudflare APIとの互換性を確保することを選択した。

 Cloudflare Workerのワークロードをサポートするために、import構文によるESモジュールのサポート、Node.js互換APIのサポート、「_routes.json」による呼び出しルートのサポート、ファイルシステム構造のサポート、CloudflareのWinterCGカスタムフェッチAPIのサポートに取り組んだという。

既存Webフレームワークとの互換性

 Cloudflare Workers APIとの互換性により、WinterJSは以下のフレームワークを完全にサポートするようになり、フレームワークによって生成された静的なWebサイトを提供するだけでなく、下記のフレームワークによるサーバサイドレンダリング(SSR)も可能にした。

  • Next.js
  • Next.js React Server Components(サーバサイドフェッチキャッシュはまだ実装されていない)
  • Hono
  • Astro.build
  • Remix.run
  • Svelte
  • Gatsby
  • Nuxt

 Wasmerは、WebAssemblyにコンパイルしたWinterJSをWasmer Edgeで実行することで、例えばNext.jsフロントエンドをVercelからWasmer Edgeに移行し、はるかに低コストでローカルで完全に再現することが可能になると述べている。

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。