微软开源基于 Rust 的新软件,可在 Kubernetes 上运行 WebAssembly
來自微軟的 DeisLabs 團隊最近開源了一款完全基于 Rust 的新軟件 Krustlet,該軟件可以用來在 Kubernetes 上運行 WebAssembly 模塊。
Kubernetes 是來自谷歌的開源容器集群管理系統,主要用 Go 語言編寫。而微軟此次選用 Rust 來編寫這款 Kubernetes 相關項目,背后有著怎樣的原因?
Azure DeisLabs 的高級軟件工程師 Taylor Thomas 解釋,主要動機之一是 Rust 與 WebAssembly(縮寫為 WASM)的兼容性。WASM 是便攜式的抽象語法樹,能夠讓開發者運用自己熟悉的編程語言進行編譯,再借由虛擬機引擎在瀏覽器內運行。經過編譯的 WASM 二進制文件(或稱模塊)可以在任何系統上運行,而Rust 是為這些二進制文件提供本機構建支持的少數語言之一。
除了兼容性之外,DeisLabs 團隊選擇 Rust 的另一大原因是其“強大的安全保障”。Thomas 表示,盡管 Rust 的借用檢查器(borrow checker)在項目初期帶來一些麻煩,可一旦學習并熟練使用后,用 Rust 編寫的效率就非常高了。該團隊大約用了一周時間來學習運作方式,兩周后效率就提升了 50%,到一個月時,所有人都能夠輕松編寫代碼,并達到最高效率。
最重要的是,由于 Rust 編譯器的嚴格規則,它能夠從源頭遏制一些錯誤的產生。與后期再費心維護和調試相比,Rust 能夠節省不少時間,提高生產效率。
針對新開發的項目 Krustlet 來講,Kubernetes 中存在大量自定義數據,并且云計算具有分布式特性。該團隊認為,Rust 的采用“在編譯器級別擁有這些保護和安全保證,使我們對正在編寫的代碼充滿信心”。
Krustlet 這個項目被標記為“高度實驗性”,目前還不建議在生產環境中使用。Thomas 也指出了 Rust 的異步運行時問題和學習曲線問題。“在學習曲線趨于平穩之前,需要花費數周的努力學習如何在 Rust 中正確編碼。但是,由于上述的安全功能,這種前期的努力可以帶來豐厚的回報。一旦開發人員超越了這一初始曲線,他們就可以像使用任何其他語言一樣輕松地為代碼做出貢獻。”
上周發布的 Rust 語言年度調查報告中,“學習曲線”也被認為是阻礙開發者采用 Rust 的一大因素。Rust 目前備受關注,但由于種種阻礙,仍不流行。盡管如此,微軟DeisLabs 團隊在博客文章中表示,他們看到了 Rust 在云軟件中的光明前景,并將繼續嘗試在各種合適的項目中采用 Rust。
總結
以上是生活随笔為你收集整理的微软开源基于 Rust 的新软件,可在 Kubernetes 上运行 WebAssembly的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 库克电话会实录:中国市场谈及最多 iPa
- 下一篇: 微软将 Visual Studio On