.NETでWebAssemblyの最新仕様「WASI Preview 2」対応コンポーネントを作れる「componentize-dotnet」、Bytecode Allianceがオープンソースでリリース

今回は「.NETでWebAssemblyの最新仕様「WASI Preview 2」対応コンポーネントを作れる「componentize-dotnet」、Bytecode Allianceがオープンソースでリリース」についてご紹介します。

関連ワード (一方、構築、開発環境等) についても参考にしながら、ぜひ本記事について議論していってくださいね。

本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。


WebAssemblyの普及と発展を目的とするByteCode Allianceは、WebAssemblyのコンポーネントモデルである「WASI Preview 2」仕様に対応したコンポーネントを、C#などの.NETテクノロジーを使って開発できるツール「componentize-dotnet」をオープンソースとしてリリースしました。

「componentize-dotnet」をBytecode Allianceがオープンソースでリリース

WASI Preview 2はWebAssemblyのコンポーネントモデル

WebAssemblyはもともと、Webブラウザ上で高速に実行可能なバイナリフォーマットとして登場しました。さまざまなプログラミング言語から生成可能なバイナリであり、OSやCPUに依存せずさまざまなコンピュータで高速に実行できる点を特徴としています。

現在ではWebブラウザから独立したスタンドアロンのWebAssemblyランタイムが登場したことで、サーバサイドでの利用も広がっています。

このWebAssemblyにコンポーネントモデルを持ち込むための仕様が「WebAssembly System Interface Preview 0.2」(省略して「WASI P2」と記述されることもあります)です。

つまりWebAssemblyで作られたソフトウェアを部品として組み合わせていくことで、1つの大きなアプリケーションを構築していくことができるようになるというものです。

一般に、現代のソフトウェアコンポーネントはソースコードのレベルで実装されています。JavaScriptで作られたUIコンポーネントや、Javaで作られたサーバコンポーネントなどはその典型でしょう。

この場合、プログラミング言語を超えてソフトウェアコンポーネントを利用することはできません。例えば、Dartで書かれたFlutterのコードの中でJavaScriptのUIコンポーネントを使うことも、PHPのコードに書かれたコンポーネントを組み合わせることも、一般論としてできません。

しかしWASI P2ではWebAssemblyのバイナリフォーマットとしてコンポーネントモデルが定義されているため、異なるプログラミング言語で作られたコンポーネントであっても自由に組み合わせられる、ソフトウェアコンポーネントの再利用が大きく発展する可能性を備えた画期的なコンポーネントモデルとされています。

参考:WebAssemblyを進化させる「WASI Preview 2」が安定版に到達。OSや言語に依存しないコンポーネントモデルを実現

WASI P2コンポーネント開発環境

WASI P2は今年(2024年)1月に安定版になり、WasmTimeを始めとするWebAssemblyランタイムでの実装も進む一方で、対応するコンポーネントを生成するためのツールの整備が課題でした。

そこで登場したのが今回の「componentize-dotnet」です。

このツールはWASI P2に対応したコンポーネントを生成するための以下のツールが1つにパッケージングされています。

  • NativeAOT-LLVM (compilation)
  • wit-bindgen (WIT imports and exports)
  • wasm-tools (component conversion)
  • WASI SDK (SDK used by NativeAOT-LLVM)

これにより開発者はツールの種類やバージョンの選択などに悩むことなく、一連のワークフローとしてコンポーネント開発が可能になります。

現時点でコンパイラ(NativeAOT-LLMコンパイラ)はWindows環境のみ対応となっていますが、LinuxやMacにも対応する予定とされています。

WASI P2対応コンポーネントの開発環境は展開が始まったばかりです。今後さまざまなプログラミング言語や開発環境において充実されていくことが期待されます。

COMMENTS


Recommended

TITLE
CATEGORY
DATE
CIOが掲げるIT課題とコンテナー採用で検討される技術要素(前編)
IT関連
2022-04-16 17:49
「ビジネスの変革」に軸足を置き柔軟に進化するDX部門–サッポロホールディングス(前編)
IT関連
2024-03-13 15:01
「Googleドライブ」や「Dropbox」を悪用するサイバー攻撃が発見される
IT関連
2022-07-24 18:13
データ量の多い科学の再現をサポートし科学者たちのコラボを容易にするCode Ocean
ネットサービス
2021-06-02 15:40
東京ガス、ボットと人を組み合わせた問い合わせ環境構築–セッション数は前年比約1万件増
IT関連
2022-12-24 12:18
HPE、サーバーの一元管理とストレージバックアップのサブスクを開始
IT関連
2022-10-26 10:24
ロジクールのビデオ会議ブース「Project Ghost」を体験–相手がより身近に
IT関連
2023-05-23 18:37
胡蝶しのぶの「日輪刀」、バンダイが発売 セリフや効果音を収録 刀身の蝶が光る
くらテク
2021-02-25 18:22
GitHub、「GitHub Enterprise Server 3.12」を一般提供–新しい自動化機能とセキュリティ強化を備える
IT関連
2024-03-12 11:12
日経平均3万円でも割安、令和の日本株がさらに飛躍すると予想する理由
IT関連
2021-06-15 12:43
豊田自動織機、富士ソフトとAI自動補正システムを構築
IT関連
2021-07-22 02:19
JR西日本とバカン、トイレ清掃を効率化する新システムを共同開発
IT関連
2022-11-12 13:24
アップル、自社製品のセキュリティ詳細を約200頁の文書で公開
IT関連
2021-02-19 18:32
「iPhone」画面を狭めず物理キーボードを追加–「Clicks for iPhone」
IT関連
2024-01-07 03:11