/note/tech

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

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

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

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

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

ふーむ