在第一個版本發布近六個月後, 宣布啟動 Wasmer 項目的新版本,這是其第二個主要版本 並且其中的重要更改已達到第二個版本中的內部 API 不兼容的程度,儘管還添加了新功能以增加穩定性、安全性和性能改進。
對於那些不知道的人 Wasmer,你應該知道它開發了一個運行時來執行 WebAssembly 模塊 可用於創建可在多個操作系統上運行的通用應用程序,並可以隔離運行不受信任的代碼。
通過將應用程序代碼編譯成低級 WebAssembly 中間件來提供可移植性 它可以在任何操作系統上運行,也可以集成到其他編程語言的程序中。 程序是運行 WebAssembly 偽代碼的輕量級容器。
這些 容器不依賴於操作系統,可以包含最初用任何語言編寫的代碼 編程。 Emscripten Toolkit 可用於編譯為 WebAssembly。 要將 WebAssembly 轉換為當前平台機器代碼,支持連接不同的構建後端(Singlepass、Cranelift、LLVM)和引擎(使用 JIT 或生成機器代碼)。
訪問控制和與系統的交互是通過 WASI(WebAssembly 系統接口)API 提供的,該 API 提供了用於處理文件、套接字和操作系統提供的其他功能的編程接口。
應用程序與主系統隔離 並且它們只能訪問聲明的功能(基於對每個資源(文件、目錄、套接字、系統調用等)的操作的管理能力的安全機制。
Wasmer 2.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 許可證,你可以在它的官方網站上查看它的詳細信息 以下鏈接。
安裝Wasmer運行時
另一方面,對於那些對能夠運行WebAssembly容器感興趣的人,您只需要在系統上安裝Wasmer運行時,而無需外部依賴。
重要的是要提到 Wasmer可以在任何平台上運行 在macOS,Linux和Windows上,唯一的要求是在系統上安裝其運行時。
為此,只需在終端中運行以下命令:
curl https://get.wasmer.io -sSfL | sh
然後,他們必須執行所需的文件:
wasmer test.wasm
如果您需要更多有關Wasmer的工作原理或想要了解其源代碼,則可以查閱所有內容。 在下面的鏈接中。