Wasm Labsが「Wasm Worker Server」をオープンソースで公開。Node.jsやDenoのようにWebAssemblyのWorkerをイベントドリブンに実行
今回は「Wasm Labsが「Wasm Worker Server」をオープンソースで公開。Node.jsやDenoのようにWebAssemblyのWorkerをイベントドリブンに実行」についてご紹介します。
関連ワード (搭載、準拠、状態保存等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
VMware Wasm Labsは、WebAssemblyのWorkerをNode.jsやDenoのようにサーバサイドでイベントドリブンに実行できる「Wasm Worker Server」をオープンソースで公開しました。
インストールも簡単で、わずか5分で使い始められると説明しています。
Today, we are excited to announce Wasm Workers Server, a self-contained server to run your workers in #WebAssembly. It assigns an HTTP endpoint to wasm modules based on your filesystem
Install, write a handler and serve requests in less than 5 minuteshttps://t.co/zc2D2q6j8Q
— Wasm Labs (@vmwwasm) October 17, 2022
コンフィグ不要、JSエンジンもWasmランタイム上で実行
Wasm Worker Serverの特徴は、これ自身の機能も含めてすべてWebAssemblyランタイムのWasmtimeの上で動いているという点にあります。JavaScriptエンジンのQuickJSもWebAssembly化され、Wasmtime上で実行されているとのこと。
HTTPエンドポイントは自動的にファイルシステムのカレントディレクトリを判別して設定されるため、コンフィグレーションファイルなどは不要。
また、基本的なデータレイヤとしてインメモリのキーバリューストアも搭載しているため、外部のデータベースなどを用意しなくともWasm Worker Serverのみで状態保存が必要なアプリケーションもそのまま実行可能です。
他のランタイムとの互換性についても、Wasm Worker ServerのAPIはNode.jsやDeno、Cloudflareなど非ブラウザ系JavaScriptランタイムの標準化団体であるWinterCGが提案している「Minimum Common Web Platform API」に準拠するように実装されていると説明されています。
Node.js、Deno、そしてBunをはじめとしてサーバサイドのJavaScript/WebAssemblyランタイムの選択肢が増えてきました。Wasm Worker Serverは本気で既存のランタイムとの競合を目指すというよりも、WebAssemblyの可能性を追求する実験的な実装という位置づけではないかとみられますが、今後このWasm Worker ServerのようにJavaScriptよりもWebAssemblyに重点を置いたランタイムの登場を予感させるものでもありそうです。
ちなみにWasm Labsは「さっき5分と書いたが間違いだった、本当は1分以内だ」と、訂正ツイートをして、1分以内で使い始める様子を紹介しています。
We are so sorry, there was a typo in our announcement. You can install, write a worker and run it in less than 1 minute. We said 5 minutes, which was a totally unrealistic number
https://t.co/3ksDHNsWni
https://t.co/zc2D2pPg6Q https://t.co/eoApEbozan pic.twitter.com/T42V2MxpFG— Wasm Labs (@vmwwasm) October 18, 2022