WebAssembly版SQLiteがWASI対応に。VMware Wasm Labsチームが明らかに

2023年5月30日

VMware Wasm LabsチームはSQLite開発チームと協力し、WebAssembly SQLiteがWASI対応になったことを明らかにしました。

fig

SQLiteは昨年11月にリリースされたバージョン3.40からWebAssembly版の「SQLite3 WASM/JS」へのコンパイルをサポートし、配布される公式のバイナリにLinux版、Windows版、Mac OS X版、Android版などと共にWebAssembly版の「SQLite3 WASM/JS」が含まれるようになりました。

参考:「SQLite3 WASM/JS」パブリックベータ公開。SQLite 3.40でサポート開始、WebブラウザなどでSQLiteが実行可能に

今回このWebAssembly版SQLiteが、WebAssemblyでクロスプラットフォームを対応するWASI(WebAssembly System Interfaice)仕様に対応したことが発表されました。

WASIはWebAssemblyをクロスプラットフォーム対応にする

WASIとは、WebAssemblyアプリケーションをWebブラウザ以外の環境、具体的にはLinuxやmacOSやWindows上でWebAssemblyランタイムを用いて実行することを想定して作られた仕様です。

これらのOS上でWebAssemblyアプリケーションが実行される場合、ファイルシステムなどのOSのシステムをAPI経由で呼び出すことになります。

APIはOSごとに異なるため、アプリケーションをOSごとに作り分ける必要があります。WebAssemblyのアプリケーションはLinux用、macOS用、Windows用などのOSごとに異なるバイナリが生成されることになります。

これではせっかく特定のプロセッサに依存しないWebAssemblyバイナリの特長を活かすことが出来ません。

そこで登場したのが、WebAssemblyのアプリケーションに対してOSのシステムコールを抽象化することでOS依存をなくし、ポータブルなWebAssemblyアプリケーションを実現する業界標準仕様のAPI「WebAssembly System Interface」(WASI)です。

WASIに対応したWebAssemblyランタイムの上で、WASIに対応したWebAssemblyアプリケーションを実行することで、1つのバイナリでクロスプラットフォーム対応のWebAssemblyアプリケーションが実現するのです。

すでに主要なWebAssemblyランタイムのほとんどがWASI対応となっており、WASIの環境はおおむね揃いつつあります(ただし今後もWASIはアップデートされていくため、状況は変化していくと思われます)。

単一のSQLiteバイナリでクロスプラットフォーム対応を実現

今回、WebAssembly版のSQLiteがWASI対応となったことで、単一のWebAssembly版SQLiteがどのOSの上であっても実行可能になりました。

すでにWASI対応としてコンパイルされたWebAssembly版SQLiteのバイナリが「Release libs/sqlite/3.41.2+20230329-43f9aea · vmware-labs/webassembly-language-runtimes · GitHub」として公開されているため、興味のある方は試すことができるようになっています。

あわせて読みたい

RDB WebAssembly データベース プログラミング言語 SQLite




タグクラウド

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