1730261811
2024-10-29 23:02:00
のリリースを発表できることを嬉しく思います ワスマー5.0これは、WebAssembly をどこでもソフトウェアを実行できる最高のツールにするという私たちの取り組みの最新のマイルストーンです。
この発表には、素晴らしい新機能が満載されています。
- より多くのバックエンドの実験的サポート: V8、 ワスミ そして ワムル
- iOS サポート
- 無駄のないコードベース
- パフォーマンスの向上
- アップグレードされたコンパイラー (LLVM 18 および最新の Cranelift を使用)
新しい機能は気に入っていますか?今すぐ Github で ⭐️ を送ってください! github.com/wasmerio/wasmer
新しい実験的なバックエンド
少し前に Wasmerのコミュニティで質問しました 次に Wasmer をサポートしたいバックエンドはどれですか。
回答は圧倒的でした。V8 (Google の Chrome Javascript ランタイムの背後にあるエンジン) が、56% の票を獲得し、最も多くの票を集めたバックエンドでした。世論調査の結果から、通訳支援はコミュニティからも要望されていることが分かりました。
さて、その日が来ました。より多くのバックエンドのサポートを追加しました: V8、Wasmi、WAMR。それらはすべて、 Wasm-C-API 、これらはすべてこの外部インターフェイスを共通に共有しているためです。
最新の追加機能のおかげで、Wasm-C-API 仕様をサポートするインタープリターまたはランタイムを簡単に Wasmer に統合できるようになりました。
V8 の統合により、V8 デバッガーを介して優れたデバッグ エクスペリエンスを実現できると期待しています。 Chrome 開発ツール。しかし、それだけではなく、バックエンドとして V8 を搭載するということは、内部で WebAssembly Exceptions と Garbage Collection をサポートすることも意味します。この点に関するさらなるニュースを近日中にお知らせしますので、ご期待ください。
現在、Wasmer は次のバックエンドをサポートしているため、次のコンテキストで Wasmer API を使用して WebAssembly を実行できます。
- ネイティブ (Wasmer ネイティブ コンパイラ経由)
- シングルパス (
singlepass機能): ブロックチェーンに最適 - クレーンリフト(
cranelift機能): 開発に最適 - LLVM (
llvm機能): 実稼働ワークロードに最適
- シングルパス (
- ブラウザ: ブラウザの基礎となる Wasm エンジン (
web機能)参照 https://github.com/wasmerio/wasmer-js 詳細については。 - JavaScriptコア: Apple の JavascriptCore エンジン。 macOS で軽量で驚くほどパフォーマンスの高いランタイムを使用したい場合に最適です (
jsc特徴) - V8: Google の JS V8 エンジン。iOS または Android で Wasmer を使用する場合に最適です (
v8特徴) - ワスミ: 最も最適な Rust WebAssembly インタープリターの 1 つ。 Wasm を使用したい場合に最適です
nostd純粋な Rust コードベースを使用した環境またはブロックチェーン (wasmi特徴) - ワムル🙁
wamr機能)iOSに最適
それでは…各バックエンドの速度はどれくらいなのでしょうか?
バックエンドのベンチマーク
私たちは、以下に基づいて広範なベンチマークを実行しました。 Wasmi の素晴らしいベンチマーク ブログ投稿 これらの各バックエンドがさまざまなシナリオでどのように動作するかを確認します。これが私たちの調査結果です。







WAMR、Wasmi、V8 バインディングによる iOS の完全サポート
Wasmer は初めて WebAssembly を導入しました。 iOS 新しい解釈されたモードを通じてデバイスをサポートします。

約 1 年前、私たちは次のサポートを追加しました Wasmer の JavacriptCore(JIT が制限されないため) iOS 上で高速なランタイムが可能になることを期待しています。残念ながら、iOS では JavascriptCore 経由で WebAssembly を使用する機能に制限が設けられています (iOS 14 以降)。
の機能を活用する V8、 ワスミ そして WebAssembly マイクロ ランタイム (WAMR)、Wasmer 5.0 のおかげで、開発者は iOS 上で WebAssembly モジュールをシームレスに実行できるようになりました。コードベースを変更する必要はありません。これにより、モバイル開発の可能性の世界が開かれ、Apple のエコシステム上で高性能アプリケーションが可能になります。
感謝したいと思います ホロチェーン なぜなら、この仕事は私たちのパートナーシップなしでは不可能だからです。
無駄のないコードベース
Wasmer 5.0 のリリースでは、新機能をさらに迅速に開発できるように、Wasmer コードベースを可能な限り無駄のないものにすることに特に重点を置きました。
この取り組みの一環として、私たちは次のことに気づきました。
- Emscripten バインディングは、主に次の 2 つの要因の影響を受けて、過去 2 年間ほとんど使用されていませんでした。
- Emscripten は、可能な場合には内部で WASI システムコールを使用してコードを発行し、Emscripten 用の特別なバインディングを必要とせずに済みます。
- ワシックス サポートされていない WASI システムコールのギャップを埋めるのに役立ちます (
threads、longjmp/setjmp、fork、…)
- Wasmer が使用した依存関係の一部は長い間メンテナンスされていないか、より新しく安全なクレートによって複製されていました。
そのため、Emscripten のサポートを終了し、依存関係をトリミングすることを決定し、その結果、最終的な結果は次のようになりました。 20,000 行のコードが削除されました Wasmer コードベースにあります。
パフォーマンスの向上
モジュールの逆シリアル化が最大 50% 高速化されました (つまり、 Module::deserialize または、モジュールを実行するとき wasmer run)。
Wasmer の核心はパフォーマンスであり、バージョン 5.0 はそれを次のレベルに引き上げます。これらの改善は、重要なアップデートを活用しています。 ルキフ: モジュールを逆シリアル化するために使用するゼロコピー逆シリアル化ライブラリ。
以下は、最新の Wasmer と最新リリースを使用したすべてのバックエンドのベンチマークです。

アップグレードされたコンパイラ: Cranelift および LLVM 18
最新の Cranelift 統合により、実行速度が大幅に向上し、WebAssembly モジュールがこれまでよりも高速に実行されます。
Wasmer 5.0 には、最新バージョンの LLVM (18)、開発者がツールチェーンから最新の最適化にアクセスできるようにします。 LLVM アップグレードにより互換性とパフォーマンスが強化され、複雑な WebAssembly モジュールをコンパイルおよび実行するための堅牢な基盤が提供されます。
それに加えて、Wasmer 5.0 には実験版も同梱されています。 ロングアーチ64 サポート。
ベンチマークも行っています coremark 最新バージョンのコンパイラを使用して、それらがどのように比較されるかを確認します。

Wasmer v5.0 では、v4.4.0 と比較して LLVM と Cranelift が約 8% 高速になっています
飛び込む準備はできていますか?新しい機能の探索を開始する方法は次のとおりです。
- Wasmer 5.0 をダウンロード: 最新バージョンを当社から入手してください 公式ウェブサイト。
- プロジェクトを更新する: 既存の Wasmer プロジェクトをアップグレードして、新しい機能を活用します。
- ドキュメントを調べる: 詳細なガイドとチュートリアルについては、更新されたドキュメントをご覧ください。
- コミュニティに参加する: Discord サーバーで他の開発者とつながり、経験を共有してください。
将来を見据えて
Wasmer 5.0 は、WebAssembly がもたらすエキサイティングな可能性のおかげで、開発者に力を与えるという私たちの使命において重要な前進となります。 iOS サポート、プラグイン可能なバックエンド アーキテクチャ、強化されたパフォーマンスにより、可能性は無限大です。 Wasmer で次に何を構築するかを見るのが待ちきれません。
最新情報を入手
Wasmerの旅にご参加いただきありがとうございます!
#Wasmer #の紹介 #ブログ #Wasmer