TOPSoftware > WebAssemblyに関連するプロジェクト11選(前)

Software

WebAssemblyに関連するプロジェクト11選(前)

2021/07/19

Paul Krill InfoWorld

 ブラウザー上で動くWebアプリケーションは、OS上でネイティブに動くデスクトップアプリケーションに比べると、以前は速度やレスポンスの面で引けを取っていた。これを解消することを目指して開発された技術が「WebAssembly」である。

Credit: Little Visuals
Credit: Little Visuals

 WebAssemblyは、低レベルなアセンブリ風の言語で、Webブラウザー上でもネイティブに近いパフォーマンスを発揮できる。コンパクトなバイナリ形式を採用しており、C/C++、C#、Rust、Go、Kotlin、Swiftなどで開発したコードをWebAssemblyにコンパイルできる。

 Webアプリケーションのパフォーマンスを向上しつつ、JavaScript以外の言語を開発に使えるという点で、WebAssemblyは歓迎された。また、米Google、米Mozilla、米Apple、米Microsoftのサポートもあり、これら各社のブラウザーはいずれもWebAssemblyに対応している。

 WebAssemblyの登場とともに、そのパワーを活用するためのさまざまな関連技術や言語が生み出された。こうしたWebAssembly関連のプロジェクトやプロダクトを11種類紹介する。

Binaryen

 WebAssemblyのバイナリを生成するためのC++製のコンパイラとツールチェーンのライブラリ。WebAssemblyへのコンパイルを簡単、高速、効果的なものにするとうたっている。

 このうち、簡単という面については、単一のヘッダーにまとめられたC APIの存在や、JavaScriptからの使用などを特徴に挙げている。高速という面については、中間表現でのコンパクトなデータ構造の使用や、中間表現からWebAssemblyへの変換のしやすさなどを挙げている。効果的という面については、WebAssembly固有の最適化や、コンパイラのバックエンドでの使用への対応などを挙げている。

 BinaryenはGitHubからダウンロードできる。

Blazor WebAssembly

 .NET用のフレームワーク。クライアントサイドのインタラクティブなシングルページWebアプリケーションをC#で開発し、WebAssemblyベースの.NETランタイムを使って、モバイル環境を含むWebブラウザー上で動かすことができる。JavaScript APIを使ってブラウザーの機能にもアクセスが可能。

 Blazor WebAssemblyを使って開発したアプリは、C#のコードとRazorのファイルが.NETアセンブリにコンパイルされ、実行時にはこれらのアセンブリと.NETランタイムがブラウザーにダウンロードされる。ブラウザー上ではJavaScriptのサンドボックス内でコードが実行されるため、クライアントマシンに対する不正な操作は行えないようになっている。

 Blazorの基礎については、Microsoftのサイトにチュートリアルがある。

↑ページ先頭へ