Wasmer 3.0 が登場し、WASI、API、メモリ管理などが改善されました

ワスマー

Wasmer は高速で安全な WebAssembly ランタイムであり、デスクトップからクラウド、エッジ、IoT デバイスまで、超軽量コンテナーをどこでも実行できます。

前回のリリースから約6ヶ月後、 Wasmer 3.0 の新バージョンがリリースされ、 開発するプロジェクトの XNUMX 番目のメジャー バージョン WebAssembly モジュールを実行するランタイム これを使用して、さまざまなオペレーティング システムで実行できるユニバーサル アプリを作成したり、信頼されていないコードを実行したりできます。

La 異なるプラットフォームで同じアプリケーションを実行する機能 これは、コードを低レベルの WebAssembly 中間コードにコンパイルすることによって提供されます。この中間コードは、任意のオペレーティング システムで実行したり、他のプログラミング言語のプログラムに埋め込んだりできます。 プログラムは、WebAssembly 疑似コードを実行する軽量のコンテナーです。

これらのコンテナーはオペレーティング システムに関連付けられておらず、任意のプログラミング言語で作成されたコードを含めることができます。

WebAssembly を現在のプラットフォームのマシン コードに変換するには、 異なるビルド バックエンドの接続をサポート (Singlepass、Cranelift、LLVM) およびモーター (JIT を使用するか、マシンコードを生成する)。 アクセス制御とシステムとの対話は WASI (WebAssembly System Interface) API によって提供されます。この API は、オペレーティング システムによって提供されるファイル、ソケット、およびその他の機能を操作するためのプログラミング インターフェイスを提供します。

プラットフォーム ネイティブ ビルドに近いアプリケーション実行パフォーマンスを実現できます。

Wasmer3.0の主なノベルティ

この新しいバージョンの Wasmer 3.0 では、 あらゆるプラットフォーム用のネイティブ実行可能ファイルを作成する機能. コマンド "wasmer 作成-exe» は完全に再設計され、WebAssembly 中間コード ファイルを、Wasmer をインストールせずに実行できる Linux、Windows、および macOS プラットフォーム用のスタンドアロン実行可能ファイルに変換します。

提示される別の新規性は、 WAPM パッケージを実行する機能 wapm.io ディレクトリにあります 「wasmer run」コマンドを使用します。 たとえば、「wasmer 実行 Python/Python» wapm.io リポジトリから python パッケージをダウンロードして実行します。

Wasmer Rust API が完全に再設計されました、メモリの処理方法を変更し、Wasm オブジェクトを Store 構造に安全に格納する機能を提供します。

また、この新しいバージョンの Wasmer 3.0 で強調されているのは、 改善された WASI API 実装 (WebAssembly System Interface) に加えて、WASI API の問題をファイル システムと連携するように修正しました。 内部型は、WAI (WebAssembly Interfaces) を使用して再設計されており、将来的に一連の新しい機能を実装できるようになります。

これに加えて、エンジンも簡素化されました。これは、JIT 用の別個のエンジンではなく、動的バインディングと静的バインディング (Universal、Dylib、StaticLib)、 共通のエンジンを提供し、コードを読み込んで保存するようになりました パラメータ設定レベルで制御されます。

アーティファクトをデシリアライズするには、rkyv フレームワークが使用されます。 つまり、追加のメモリ割り当てを必要とせず、最初に提供されたバッファのみを使用して逆シリアル化を実行します。

その他の変更 この新しいバージョンから際立っている:

  • rkyv を使用すると、起動速度が大幅に向上しました。
  • シングルパス コンパイラが強化され、多値関数のサポート、信頼性の向上、および例外処理フレームワークのサポートの追加が行われました。
  • コンポーネントのセット wasmer-js Wasmer を Web ブラウザで実行し、ライブラリを使用して JavaScript から対話するように実装されています wasm-ビンジェン.
  • 新しい構造が提案されました。 メモリービュー これにより、線形メモリ領域でデータの読み取りと書き込みが可能になります。

最後に、プログラムは通常の WebAssembly モジュールの形式で配布され、WAPM パッケージ マネージャーを使用して管理できることに注意してください。 Wasmer は、WebAssembly コードを Rust、C/C++、C#、D、Python、JavaScript、Go、PHP、Ruby、Elixir、および Java プログラムに埋め込むために使用できるライブラリとしても利用できます。

プロジェクトのコードは Rust で書かれており、MIT ライセンスの下で配布されており、詳細を確認できます。 次のリンクで。


コメントを最初に

コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:AB Internet Networks 2008 SL
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。