WebAssembly執行環境Wasmer發布7.0版,更新重點之一是提升Python可用性。開發團隊在其主導的WASI擴充WASIX加入完整動態連結支援,目標是讓更多依賴原生擴充模組的Python套件能在Wasmer上運作。新版也推出實驗性非同步API,並更新Cranelift與Singlepass等編譯後端能力。

Wasmer用來在瀏覽器之外執行WebAssembly程式,由於要讓WebAssembly程式能以較一致的方式存取檔案、網路等系統資源,社群推動WebAssembly系統介面WASI。WASIX是Wasmer團隊主導的擴充方向,補上WASI不足的系統呼叫能力。

動態連結是Wasmer 7.0與Python生態系最直接相關的更新。官方指出過去Python在Wasmer上的支援多半停留在核心直譯器,像numpy或pydantic這類依賴原生擴充模組的套件,常因缺乏合適的動態連結機制而受限。Wasmer 7.0在WASIX導入完整動態連結支援後,執行階段即可載入所需模組,藉此擴大可運行的Python套件與原生模組範圍。

其他更新包含實驗性非同步API。官方表示這套第一級非同步函式支援可讓Python在Wasmer上補齊完整的非同步能力,並解鎖先前難以運作的生態系套件,例如SQLAlchemy等。編譯器方面,Wasmer升級Cranelift並加入WebAssembly例外處理支援,同時整合系統標準的libunwind堆疊展開函式庫,以補齊端到端的例外處理流程。Singlepass則新增RISC-V與多回傳值支援,以補齊先前缺口。

Wasmer的穩定度與開發體驗也有所調整,官方表示7.0版合併超過200個拉取請求,其中約80項針對缺陷或長期限制,並升級大量相依套件,包含LLVM 21。工具面則在使用LLVM編譯器首次建置模組時加入編譯進度條。另針對Python或PHP等大型套件的建置流程,Wasmer會對極大型函式選擇性降低最佳化強度,以縮短編譯時間,例如Python建置時間從約90秒降至約10秒。

熱門新聞

Advertisement