Webブラウザ上でWebAssembly製コンパイラによりC言語をWebAssemblyにコンパイル、そのまま実行可能に。Wasmer 4.4の新機能

2024年10月23日

スタンドアロンなWebAssemblyランタイム「Wasmer」の開発元であるWasmer社は最新のWasmer 4.4の新機能として、C言語をWebAssemblyにコンパイルし、WebAssembly環境でそのまま実行可能する機能を発表しました

fig

下記はWasmer社が用意した、Webブラウザ上にWebAssemblyでBash環境を構築する「wasmer.sh」のコマンドラインから、wasmerによりC言語をコンパイルしてWebAssemblyモジュールを生成し、実行する操作を筆者のWindowsマシンで実際に試したところです(赤線は筆者による)。

fig

Webブラウザ上でC言語をWebAssemblyにコンパイルし、そのままWebAssembly環境上で実行できています。

合わせて登場したJavaScript SDKによってNode.jsやBunなどのサーバサイドのWebAssembly/JavaScript実行環境においてもC言語をWebAssemblyにコンパイルして実行可能だとしています。

WebAssemblyをPOSIX対応にしたことで実現

Wasmerは2023年6月、WebAssemblyモジュールからOSへのシステムコールを抽象化する業界標準仕様のWASI(WebAssembly System Interface)を独自に拡張してPOSIX対応にする「WASIX」を提唱し、Wasmer 4.0で実装しています。

参考:WebAssemblyでBashのコマンドプロンプトを実装、Wasmer 4.0が正式リリース、POSIX対応の「WASIX」など安定版に

WebAssemblyでBashを実装した前述のwasmer.shと、そして今回登場したWasmerによるC言語からWebAssemblyへのコンパイルは、このPOSIX互換をWebAssemblyで実装したWASIXの技術によって可能になっています。

ただし現時点でwasmerでC言語のコンパイルを実現する「clang/clang」パッケージが約100MBの大きさでロードなどに時間がかかるため、今後これをさらに30MB程度にまで小さくすることを目論んでいるとのことです。

あわせて読みたい

WebAssembly プログラミング言語 C Wasmer




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本