WebAssembly
為何選擇 Rust?
可預期的效能
不會有未預期的垃圾蒐集導致的停頓。不會有即時編譯器(JIT compiler)的效能懸崖。正是將高人體工學與低階的操作完美搭配。
少量的程式碼
少量的程式碼意味著非常快的載入速度。Rust 所產生的 .wasm
不會包含額外的產物,例如垃圾回收器。更進階的優化和搖樹優化(tree-shaking)則可以減少無用的程式碼。
時尚禮儀
一個活躍的函式庫生態系將助您旗開得勝。Rust 擁有優秀表達能力、零成本抽象化和一個非常和善的社群來幫助您學習。
與 JavaScript 極佳的相容性
增強!不是取代!
WebAssembly 的夢想不是為了扼殺 JavaScript 而是要共存,幫助非常繁重或底層的處理工作 — 因為 Rust 專注在效能而受益。
使用熟悉的工具鏈來開發
您可以發佈 Rust 的 WebAssembly 套件到 npm 這類的套件管理工具。使用 Webpack、Parcel 或其他工具來打包和發佈套件。並使用 npm audit
或 Greenkeeper 等工具來進行維護。
無縫的互操作性
自動化生成 Rust、WebAssembly 和 JavaScript 之間的 API 的綁定程式碼。充分利用 web-sys
之類的函式庫為整個 Web 平台提供事先打包好的绑定。
產品應用
我們可以用 Rust 程式碼編譯出 WASM,並呼叫與網路緊密交織的 Serverless 服務。WASM 的潛力無窮,我迫不及待地想要用它做更多的事情。
– Steven Pack,《Serverless Rust 與 Cloudflare Workers》
JavaScript 的 source-map
函式庫實現為了性能而累積的大量複雜程式碼,而我們將它替换成道地的 Rust 程式碼。Rust 不會強迫我們在明確表達意圖和運行時效能之間做出選擇。
– Nick Fitzgerald, Oxidizing Source Maps with Rust and WebAssembly
[Rust] 的特性讓我們能透過 WASM 可以輕鬆地將 DivANS 編碼器嵌入到網頁中。
– Daniel Reiter Horn and Jongmin Baek,《用 DivANS 建造更好的壓縮》