.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
「NIPPON ITチャリティ駅伝実行委員会」、体験管理プラットフォームで感染対策を構築
IT関連
2022-11-10 02:36
マイクロソフト、「PrintNightmare」対策で「ポイントアンドプリント」デフォルトの動作変更
IT関連
2021-08-13 14:51
中小の販売業者が扱う低価格製品にも「Apple Care」のようなサービス提供を目指すExtend
その他
2021-05-29 17:35
“情報システム部門も知らない資産”がサイバー攻撃の標的に 「CyCognito」で隠れたリスクを洗い出せ!
PR
2021-03-19 01:47
生成AI利用する約6割の組織が外部攻撃リスクを認識–トレンドマイクロ調査
IT関連
2024-12-20 03:01
「Windows 8.1」のサポート終了、マイクロソフトが通知を開始へ–2023年1月に向け
IT関連
2022-06-25 20:51
デザインコミュニケーションツールのFigmaが日本法人を設立–数カ月をめどに日本語版をリリースへ
IT関連
2022-03-18 19:04
オラクル、MySQLのデータベースエンジンでJavaScriptをサポート、ストアドプロシージャなどJavaScriptで記述可能に。プレビュー版をリリース
JavaScript
2024-01-10 05:30
味の素、SAP Aribaソリューションで間接材の調達購買業務を最適化
IT関連
2022-05-28 21:27
リコー、裸眼で全方位から見られる立体映像装置を開発 22年度の実用化目指す
DX
2021-03-09 17:33
高速・大容量だけではない! KDDIがビジョンを描く「5G×ビジネス」の新時代 :5G搭載!“ARM版Windows 10”特集 第三弾
PR
2021-07-09 02:39
オンラインワークスペースのNotionに一時DNS原因の障害発生
ネットサービス
2021-02-15 18:55
「プライバシーテック」を武器にデータクリーンルームを構築–名大発ベンチャーの挑戦
IT関連
2023-12-12 03:39
Kubernetes 1.30、コード名「Uwubernetes」正式リリース、史上最もキュートなロゴのKubernetesリリースに
Kubernetes
2024-04-19 06:42