开源WebAssembly执行环境Wasmer更新第5版本,新增对V8、Wasmi和WAMR后端的实验性支援,并且首次完整支援iOS。这次更新不仅提升了Wasmer跨平台灵活性,也让WebAssembly在行动和桌面装置上的应用更为简单便捷。
Wasmer开发团队在新版Wasmer中所加入的新后端支援,包括Google V8引擎、以Rust编写的Wasmi,以及针对行动端的WAMR,皆经由Wasm-C-API整合。每一个新后端都有其优势,V8引擎源自于Chrome的JavaScript引擎,适用于iOS和Android,开发者将可透过V8除错器和Chrome Devtools更好地进行除错,而且整合V8也就相当于底层支援WebAssembly例外处理和垃圾回收功能。
Wasmi是专门替Rust最佳化的WebAssembly直译器,特别适用于纯Rust程式码的nostd环境或是区块链。WAMR设计针对行动端资源占用少,是作为iOS开发的理想选择。这些多元后端扩展了Wasmer执行环境适用性,使其更加灵活。
而Wasmer 5.0也透过V8、Wasmi和WAMR的整合,实现WebAssembly在iOS装置上的完整支援,并且克服iOS 14之后版本对JIT编译的限制,允许WebAssembly模组直接在iOS装置执行,而且不需要对应用程式码进行更动。
Wasmer开发团队由于要提升执行效能和开发效率,Wasmer 5.0将不使用的Emscripten绑定和重复相依项目移除,减少约2万行程式码。此精简措施让Wasmer更为轻量,同时反序列化效能提升50%。此外,升级Cranelift和LLVM 18编译器进一步提高执行速度,让Wasmer 5.0比前一版本快约8%。这些最佳化不仅减少维护成本,还提升开发效率。
整体而言,Wasmer 5.0在多后端支援和跨平台应用上,展现出与其他WebAssembly解决方案不同的优势。像是Bytecode Alliance开发的Wasmtime,注重于伺服器端的高效能应用,但是目前仅支援Cranelift后端,而WasmEdge则更专注于物联网和嵌入式装置,对大规模云端和行动应用的支援相对有限。
Wasmer 5.0在更新之后成为了一个更灵活的解决方案,或将可进一步推动WebAssembly的普及并扩展应用的可能性。