Cloudflare WorkersがWebAssemblyでWASIをサポート。WebAssemblyはクロスプラットフォーム対応が当前の世界に

2022年7月11日

Cloudflareは、同社のCDNエッジでWebAssemblyが実行できるサービス「Cloudflare Workers」のWebAssemblyランタイムでWASI(WebAssembly System Interface)をサポートしたと発表しました

Cloudflare Workersは、同社が提供するグローバルなコンテンツデリバリーネットワーク(CDN)のエッジにおいて、開発者がJavaScriptのコードを配置し実行できる機能を提供するサービスです。WebAssemblyランタイムも用意されているため、WebAssemblyの実行にも対応します。

参考:CDNのエッジでJavaScriptとServiceWorkerを実行できる「Cloudflare Workers」がWebAssemblyに対応

今回はこのCloudflare WorkersのWebAssemblyランタイムにおいてWASIと呼ばれるAPIのサポートが発表されました。

システムコールを抽象化してWebAssemblyをポータブルにするWASI

WASIとは、OSのシステムコールを抽象化することでOS依存をなくし、ポータブルなWebAssemblyアプリケーションを実現する業界標準仕様のAPIです。

もともとWebAssemblyはWebブラウザ上で高速に実行できるバイナリフォーマットとして開発されましたが、Cloudflare WorkersのようにWebブラウザ以外の場所でも実行可能なランタイムが登場したことで、WebブラウザだけでなくWindowsやmacOS、LinuxなどのOS上や、CDNエッジなどさまざまな場所で実行されるようになりました。

これらさまざまなプラットフォーム上でWebAssemblyを実行しようとすると、WebAssemblyから、例えばファイルの読み込みや標準入出力などに関するシステムコールを呼び出すことになります。

このときプラットフォームごとにシステムコールのAPIが異なっていると、WebAssemblyのアプリケーションは各プラットフォームに依存したもの、例えばLinux専用のWebAssemblyアプリケーション、Cloudflare Workers専用のアプリケーションを開発しなければなりません。

そこでこうしたプラットフォームごとのシステムコールを抽象化することで、どのプラットフォームでも同一のWebAssemblyアプリケーションで実行可能にするのがWASIなのです。

WASIに則って開発されたWebAssemblyアプリケーションはどのWASI対応WebAssembly対応ランタイムでも同じように実行可能になる、クロスプラットフォーム対応となります。

WASIの普及でWebAssemblyはクロスプラットフォーム対応が当然に

Cloudflare WorkersのWebAssemblyランタイムがWASIに対応したことで、WASIを用いたクロスプラットフォーム対応のWebAssemblyアプリケーションがそのままCloudflare Workersで実行可能になります。

例えば、macOSやLinuxで利用できるWASI対応のスタンドアロンWebAssemblyランタイムであるWasmtimeでも、Cloudflare Workersでも、全く同一のWebAssemblyアプリケーションが実行可能です。

WASIは前述のように事実上の業界標準としてほとんどのWebAssemblyランタイムで実装が進んでいます。Cloudflare WorkersのWASI対応もそうした業界標準対応へのトレンドを象徴するできごとの1つです。

今後WebAssemblyアプリケーションはWASIによってクロスプラットフォームで実行できることが当たり前になっていくと見られます。

Tags: WebAssembly プログラミング言語 Cloudflare

このエントリーをはてなブックマークに追加
ツイート
follow us in feedly





タグクラウド

クラウド / 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本