开源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的普及并扩展应用的可能性。



2024-10-31
