IT之家 5月25日消息,谷歌的許多開源項目都使用Rust,這是一種現(xiàn)代系統(tǒng)語言,旨在構(gòu)建可靠高效的軟件。日前谷歌在GitHub上開源了對Rust Crate的審查結(jié)果,開發(fā)者可在自己的項目中導入這些審核結(jié)果,以證明所使用的Rust Crate的屬性。
圖源谷歌開源博客
Rust社區(qū)中存在可用于供開發(fā)者發(fā)布自己所開發(fā)的Crate的名為Crates.io的服務,開發(fā)者利用Crates.io也能下載使用他人所開發(fā)的Crate。但所有第三方代碼都帶有一定風險因素。對于本地編譯器層面而言,對Crate的要求可能僅是不包含主動惡意代碼、不侵犯隱私、泄露數(shù)據(jù)或是安裝惡意軟件即可,但是供客戶端側(cè)部署的代碼則需要符合更嚴格的要求,例如確保沒有內(nèi)存安全問題,并需要還要符合系列標準和規(guī)范需求、并使用更新的加密技術(shù)。
因此通常在新項目開始之際,開發(fā)組成員會根據(jù)其安全性、正確性、測試等標準對源碼進行徹底的審查,當幾個不同的項目審查同一個crate時可能會導致重復工作,因此為了消除重復的工作及驗證安全性,因此谷歌內(nèi)部項目開始使用新的Crate之前一定會經(jīng)過徹底審核。
而第三方開發(fā)者各自審查項目所使用的Crate時,可能會浪費資源執(zhí)行重復的工作,因此谷歌宣布開源審核結(jié)果,以避免重復審核工作。谷歌將這些審核結(jié)果持續(xù)整合到供應鏈儲存庫中,并且使用cargo vet來快速驗證項目所使用的Crate。
開發(fā)者可以將谷歌開源的審核結(jié)果,包括代碼質(zhì)量、安全性和測試要求等屬性,導入到自己的項目中,并且根據(jù)這些Crate屬性,決定其是否符合項目需求。不同使用案例的需求不同,cargo vet讓用戶能夠?qū)γ恳粋€相依項目獨立配置要求。
日前谷歌的ChromeOS和Fuchsia項目都已經(jīng)貢獻Crate審核結(jié)果,其他谷歌項目也會逐漸加入,如此便可覆蓋更多的Crate。目前這項工作仍在初期階段,包括cargo vet執(zhí)行和共享審核的運作細節(jié),之后可能還會有所變動。
IT之家注:在Rust程序語言中,Crate是Rust中的一個編譯單位,Crate可以編譯成二進制文件或庫,其包含Rust代碼和其他相關(guān)資源,可以被編譯成執(zhí)行文件或是函數(shù)庫。Rust使得在Crate中封裝和共享代碼變得容易,就像其他語言的軟件包,這些Crate是可復用的軟件組件,因此具有相當廣泛的普適性。