WebAssembly関連技術 / ツール

Uncategorized

注目されるWebAssembly

WebAssembly(Wasm)は、Webブラウザでプログラムを高速で動かすための新しいフォーマットです。

WebAssemblyを活用することで、Webブラウザ上でのアプリケーション動作のパフォーマンスを向上できる可能性があります。Web上で利用されるアプリケーションの広がりとともに、WebAssemblyの技術は開発や応用が広がっています

登場からまだそれほど時間が経っていないWebAssemblyの技術は、試験的に運用されている段階ということも多いですが、様々な領域への適用が試みられています

今日は、

  • Webフレームワーク / ライブラリ
  • 統合開発環境

などの点から、WebAssembly関連の技術やツールを見ていきます。

Webフレームワークとライブラリ

Blazor

Blazorは、C#で、Webアプリケーションを開発するためのWebフレームワークです。Microsoftにより公開されています。

Blazorには、サーバサイドで動作するBlazor Serverと、クライアントサイドで動作するBlazor WebAssemblyというモデルがあります。

Blazor WebAssemblyは、文字通りWebAssembly技術を使用していて、このフレームワークを使用することで、C#から、Webブラウザで動作するアプリケーションを開発することができます。

Yew

Yewは、Rustのフロントエンド用フレームワークです

Yewを使うことで、Webブラウザで動作するアプリケーションをRustで開発することができます。

Rustというとシステムプログラミング言語のイメージが強いかもしれませんが、Yewの開発は進んでいます。

始め方のドキュメントも充実してきています。

Perspective

Perspectiveは、インタラクティブなデータの可視化ツールです。

Perspectiveを使用することで、Web上でのグラフ描画、ピボットテーブルの作成などデータ分析と可視化をインタラクティブに行えるWebページを作成することができます

JavaScriptやPythonから使用することができます。

Vugu

Vuguは、Go言語で使用できるフロントエンド用フレームワークです

WebAssemblyの技術が利用されていて、Vuguを使うことで、Webブラウザで動作するアプリケーションを開発することができます。

Vuguは、VueやReact、AngularといったJavaScripのフレームワークに影響を受けているとのことです。

プログラミング言語から見るWebAssembly

Webフレームワークやライブラリの他にも様々な領域でWebAssemblyの技術は使われ始めています。

AssemblyScript

AssemblyScriptは、WebAssemblyのためのプログラミング言語です。

TypeScriptに非常によく似た構文を持ち、WebAssembly技術活用のために開発された言語です。

始め方サンプルなどを公式サイトから確認できます。

Pyodide

Pyodideは、WebAssembly技術を用いて、Pythonとその科学ライブラリ(NumPyやPandasなど)の実行環境をWebブラウザで実現するものです。

始め方のドキュメントが用意されています。

エディタと統合開発環境

WebAssembly Studio

WebAssembly Studioは、Mozillaが発表した、統合開発環境(IDE)です。

WebAssemblyを活用したアプリケーション開発のためのIDEで、C言語やRust、AssemblyScripなどのプログラミング言語に対応しています。

発表から間もないですが、MozillaはWebAssembly Studioの機能拡充を進めるとしています。

既存のエディタの拡張機能

WebAssembly Studio以外にも、

など、すでに広く使われているエディタに対して、WebAssemblyやWebAssembly Text Formatサポートツールが開発されています。

開発が進むWebAssemblyのエコシステム

WebAssemblyが最初にアナウンスされたのが2015年です

2021年2月時点で、すでに多くの分野での活用が模索され、様々なプロジェクトが実用化を見据えて開発を進めています。

今日紹介した、

  • Webフレームワークとライブラリ
  • 色々なプログラミング言語のWebAssemblyへの対応
  • エディタや統合開発環境

をはじめ、多くの試みがあります

  • ゲーム開発のプラットフォームとして広く知られるゲームエンジンUnityのWebAssemblyサポート
  • 組み込みやWebAssembly向けのGo言語コンパイラTinyGo

など、目を引くものが多数ある印象です。

WebAssembly環境の今後にますます注目です。

コメント

タイトルとURLをコピーしました