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