甫推出的Rust 1.74,更新重點包括Cargo中新增了Lint配置選項,還在Cargo引入憑證提供者,以及經過認證的私有註冊表功能,強化了安全性,而在Rust新版本中,編譯器現在支援不透明回傳類型。同時,Rust也提升對Apple平臺作業系統的最低版本要求。

Rust 1.74現在允許開發者在Cargo.toml檔案中,透過[lints]表格配置編譯器,和其他工具的Lint報告等級,諸如禁止、拒絕、警告和允許。這代表著開發者現在可以在套件清單中,直接指定Lint規則,不再需要透過可能會影響整個建置的RUSTFLAGS旗標,或是以Crate層級屬性設定。

新方法提供開發者更為細緻的控制,並且可以在工作空間層級進行配置,然後由單一套件繼承。Cargo會追蹤配置的更改,並且決定需要重建的Crate。

這個版本還新增了兩項和Cargo註冊表認證相關的安全功能,分別是憑證提供者,以及經過認證的私有註冊表。憑證提供者允許開發者配置Cargo以取得註冊表認證,支援Linux、macOS和Windows作業系統的安全密碼儲存,而且開發者也可以編寫自定義提供者,以儲存和產生令牌。官方表示,使用憑證提供者功能,可以減少註冊表令牌洩漏的風險。

除此之外,註冊表現在可以選擇性地要求所有操作都需要進行認證,而不單只有發布操作而已。官方提到,這使得私有Cargo註冊表可以提供更加安全的Crate託管服務。不過要使用私有註冊表,則需要配置憑證提供者。

在之前Rust編譯器並不允許在像是async fn和-> impl Trait等不透明回傳類型中,提及Self或是父作用域生命周期相關的關聯類型(Associated Type),官方提到,這樣的限制在特定情況,可能會讓造成程式碼編寫的困難。

而在最新的Rust 1.74中,這個限制被移除,也就是在上述情況下,開發者已經可以使用Self和關聯類型,如此便提高了程式碼的表達能力和靈活性。該功能之前被標記為不穩定,但在官方解決相關問題,並且經過充分測試後,現在已經穩定。

Rust 1.74版本還提高對Apple平臺最低版本的要求,現在最低作業系統支援版本為macOS 10.12 Sierra、iOS 10和tvOS 10。這三個版本都在2016年的時候首次推出,該更新代表使用Rust 1.74之後版本開發的應用程式,將不支援在這些版本之前的作業系統上運作。

熱門新聞

Advertisement