最初のバージョンの発売からほぼXNUMXか月後、Wasmerプロジェクトの新しいバージョンの立ち上げが発表されました。これはXNUMX番目のメインバージョンです。 また、このXNUMX番目のバージョンの内部APIに互換性がないほど重要な変更が加えられていますが、安定性、セキュリティ、パフォーマンスの向上を追加する新機能も追加されています。
知らない人のために Wasmer、WebAssemblyモジュールを実行するためのランタイムを開発することを知っておく必要があります これを使用して、複数のオペレーティングシステムで実行できるユニバーサルアプリケーションを作成したり、信頼できないコードを分離して実行したりできます。
移植性は、アプリケーションコードを低レベルのWebAssemblyミドルウェアにコンパイルすることで提供されます 任意のオペレーティングシステムで実行することも、他のプログラミング言語のプログラムに統合することもできます。 プログラムは、WebAssembly擬似コードを実行する軽量コンテナです。
これらの コンテナはオペレーティングシステムに関連付けられておらず、元々任意の言語で記述されたコードを含めることができます プログラミング。 Emscripten Toolkitを使用して、WebAssemblyにコンパイルできます。 WebAssemblyを現在のプラットフォームマシンコードに変換するために、さまざまなビルドバックエンド(シングルパス、Cranelift、LLVM)とエンジン(JITを使用またはマシンコードの生成)の接続がサポートされています。
アクセス制御とシステムとの対話は、WASI(WebAssembly System Interface)APIを介して提供されます。これは、オペレーティングシステムによって提供されるファイル、ソケット、およびその他の機能を操作するためのプログラミングインターフェイスを提供します。
アプリケーションはメインシステムから分離されています また、宣言された機能(各リソース(ファイル、ディレクトリ、ソケット、システムコールなど)でのアクションの管理機能に基づくセキュリティメカニズム)にのみアクセスできます。
Wasmer2.0の主なノベルティ
提示されたこの新しいバージョンでは、 バージョン番号の大幅な変更 ワスマー 内部APIへの非互換性の変更の導入に関連しています。 開発者によると、これは、 99%のユーザーには影響しません とにかくプラットフォームの。
互換性の大きな変更の中で、シリアル化されたWasmモジュールの形式も変更されています(Wasmer 1.0でシリアル化されたモジュールは、Wasmer 2.0では使用できなくなります)。
さらに、 SIMD命令のサポートが強調表示されています (単一命令、複数データ)どの データ操作の並列化を可能にする。 SIMDを使用すると生産性が大幅に向上する分野には、機械学習、ビデオのエンコードとデコード、画像処理、物理プロセスシミュレーション、グラフィック操作などがあります。
また 参照型のサポートが強調表示され、 Wasmモジュールが他のモジュールまたは基本環境の情報にアクセスできるようにし、パフォーマンスを大幅に最適化しました。 浮動小数点数を使用したLLVMランタイム速度が約50%向上しました。
カーネル呼び出しを必要とする状況を減らすことにより、関数呼び出しが大幅に高速化されました。 Craneliftコードジェネレーターのパフォーマンスが40%向上しました。 データの逆シリアル化時間が短縮されました。 要旨をより正確に反映するために、エンジン名が変更されました:JIT→Universal、Native→Dylib(ダイナミックライブラリ)、Object File→StaticLib(静的ライブラリ)。
最後に Wasmerについてもっと知りたい場合は、 プロジェクトコードはRustで記述されており、MITライセンスがあり、公式Webサイトで詳細を確認できます。 次のリンク。
Wasmerランタイムをインストールします
一方、WebAssemblyコンテナを実行できるようにすることに関心がある場合は、システムにWasmerランタイムをインストールするだけで済み、外部依存関係はありません。
言及することが重要です Wasmerはどのプラットフォームでも実行できます macOS、Linux、およびWindowsの場合、唯一の要件は、そのランタイムがシステムにインストールされていることです。
これを行うには、ターミナルで次のコマンドを実行するだけです。
curl https://get.wasmer.io -sSfL | sh
その後、必要なファイルを実行する必要があります。
wasmer test.wasm
Wasmerのしくみについてもっと知りたい場合、またはそのソースコードを知りたい場合は、すべてを調べることができます。 次のリンクで。