隨著9月19日Safari和10月31日Edge的發布,蘋果與微軟加入了谷歌和Mozilla,在生成環境瀏覽器中提供了對WebAssembly的支持。這四家公司的瀏覽器都能運行編譯為wasm二進制格式的代碼。
Safari支持WebAssembly的第一個版本是11,而Edge的版本是16。Firefox是第一個發布支持WebAssembly功能的主流瀏覽器,是于2017年3月7日發布的52號版本,Chrome緊隨其后,在2017年3月9日發布的57號版本中包含了對WebAssembly。通過使用其他的高級工具,開發人員能夠以wasm二進制格式來交付代碼,并且可以預期它能夠支持大多數的終端用戶。
從2017年3月31日各個主要的瀏覽器廠商就v1版本的規范達成共識以來,WebAssembly已經取得了巨大的進步。不僅在所有的瀏覽器中都得到了實現,而且其編譯工具鏈已經開始成熟,現在已經有人嘗試將WebAssembly集成到像webpack這樣更加標準的Web開發工具中。
webassembly.org推薦的編譯WebAssembly的工具鏈是Emscripten。網站上有一個快速的開發人員指南,MDN上還有更多深入的文檔。這個工具鏈目前可以編譯C、C++或Rust,它首先將代碼編譯為LLVM字節碼,然后將其轉換為asm.js,最后使用asm2wasm編譯工具,此時該工具用到了 WebAssembly二進制工具集。通過wasm后端直接實現對純LLVM編譯的支持目前正在進行之中并且正在逐漸成熟,在11月20日的一次pull request合并中,Rust成為了第一個使用它的語言。
在傳統的Web開發工具方面,發展也是很迅速的。Webpack得到了Mozilla的一個授權,將WebAssembly作為第一等的模塊類型。webpack團隊相信讓WebAssembly更容易地集成到真正的生產環境中會推動WebAssembly的實際采用。webpack核心團隊的Sean Larkin這樣說:
如果開發人員、業務以及公司不能無縫地將其應用于生產環境,WebAssembly不會進步、發展和演進。我們感覺webpack能夠讓人們更容易地使用該技術,并促進它的廣泛采用。
隨著工具鏈的改善和更多的支持,行業在迅速地將web assembly集成到各種領域之中。Mozilla最近的聲明宣布wasm得到了廣泛的支持,所涵蓋的范圍從計算機視覺到語言探測,以及方方面面。Mozilla的工程師Luke Wagner說:
現在,我們看到人們將WebAssembly用到了各種類型的新項目之中。所以,這意味著,最終會有一天我們將在Web上運行大多數的程序,其效果就像現在在本地PC上運行那樣。
查看英文原文:WebAssembly Now Supported across All Browsers