BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース "Wasmer" WebAssemblyランタイムを一般提供

"Wasmer" WebAssemblyランタイムを一般提供

原文(投稿日:2021/01/21)へのリンク

Wasmerは先頃、サーバサイドWebAssemblyランタイムのバージョン 1.0をリリースして、現在一般提供されている。

Wasmerは、WebAssembly (略してWasm) に基づく超軽量コンテナを可能にする。バージョン 1.0は、2年以上前にバージョン 0.1.0で始まったジャーニーの重要なマイルストーンを示している。これは、サーバサイド Wasmへの関心が高まっていることを示している。

Wasmerのバージョン 1.0の重要な機能は次のとおり:

  1. さまざまなパフォーマンスの向上: 以前のバージョンよりも最大9倍高速なコンパイル時間。
  2. プラグ可能なインフラストラクチャ: 複数のコンパイラと複数のコンパイルエンジンのサポート。すぐに使用できるWasmerには、SinglepassCranelift、およびLLVMがサポートされている。また、生成されたコードをメモリに直接プッシュするJITエンジンと、ディスク上にネイティブコードを生成するネイティブエンジンの2つの操作モードもサポートしている。
  3. ネイティブオブジェクトエンジン: Wasmモジュールをネイティブオブジェクトにプリコンパイルする。これらのオブジェクトは、完全にサンドボックス化された環境を提供して、コンパイルされたモジュールを実行するために最小限のランタイムを必要とする。
  4. ヘッドレス Wasmer: 特に軽量IoTデバイスを対象としたユーザは、重量がわずか数百キロバイトの「ヘッドレス」バージョンのWasmerを実行でき、プリコンパイルされたWasmバイナリを任意のデバイスで実行できる。
  5. クロスコンパイル: Wasmを任意のCPUアーキテクチャから任意のターゲットCPUアーキテクチャにプリコンパイルする。

Wasmは、スタックベースの仮想マシン用のバイナリ命令フォーマットだ。プログラミング言語が可搬性のあるコンパイルターゲットとなるよう設計されており、クライアントおよびサーバアプリケーションのWebへのデプロイメントを可能にする。Wasmは、Webアプリケーションを実装するために多くの注目を集めている。開発者は、従来のJavaScriptコードの代わりに、またはそれに加えてWasmを使用でき、最新のブラウザのほとんどは、Wasmをすぐに実行できる。Wasmを対象とする言語の数は、C/C++、Rust、C#などを含め増え続けている。

ブラウザでのWebAssemblyの人気に続いて、いくつかのサーバサイドのWasm実装が登場した。Wasmer Inc.のCEOであるSyrus Akbary氏は、サーバサイドのWasmランタイムの重要性について説明する:

WebAssemblyは、ソフトウェアの実行とコンテナ化の将来にとって重要なコンポーネントになると信じています (ブラウザの内部だけでなく外部でも)。

ソフトウェアのコンテナ化にWasmを活用することで、Linux、macOS、WindowsなどのオペレーティングシステムとWebブラウザを含め、変更なしでどこでも機能するユニバーサルバイナリを作成します。Wasmは、安全に実行するためにデフォルトでアプリケーションを自動的にサンドボックス化し、実行するソフトウェアの悪意のあるコード、バグ、および脆弱性からホスト環境を保護します。Wasmは、無駄のない実行環境も提供し、Dockerコンテナが重すぎて機能しない場所でWasmerコンテナを実行できるようにします。

Wasmサーバランタイムは、WebAssemblyのモジュラーシステムインターフェイスであるWebAssembly System Interface (WASI) を実装している。WASIの実装により、WasmコードはOS固有のサービスにアクセスできる。これらのサービスは、通常、ブラウザ (ファイルシステム、ネットワークなど) では利用できない。Dockerの共同創設者であるSolomon Hykes氏は、2019年にツイッターに返した:

2008年にWASM+WASIが存在していたら、Dockerを作成することはありませんでした。これがどれほど重要かということです。サーバ上のWebAssemblyは、コンピューティングの未来です。標準化されたシステムインターフェイスは、欠落しているリンクでした。WASIがその任を果たすことを願いましょう!

Wasmerは、Rustで記述されたWasmサーバサイドランタイムの一般的なオープンソース実装だ。これを支援する会社であるWasmer Inc.は、WebAssembly Package Manager (WAPM) も作成した。これにより、開発者はWasmコードのパッケージ化されたモジュールを簡単に共有できる。Wasmerの代替には、Second State Virtual Machine (SSVM) やLucetなどのランタイムがある。

この記事に星をつける

おすすめ度
スタイル

BT