国产成人超清在线视频,国产高清永久免费,国产最新超碰97上传无码,超碰国产人人草人人爽

Facebook是如何引入并使用Rust的?

資訊
  • AI前線
  • 2021-07-09 02:23

Facebook 正在擁抱當今最受歡迎 、發(fā)展最快的一門編程語言——Rust。當前,F(xiàn)acebook 除了為公司內(nèi)部的 Rust 團隊引進人才,還正式加入了 Rust 基金會,與 Mozilla(Rust 的創(chuàng)造者)、AWS、微軟和谷歌等其他成員一起,致力于維持和發(fā)展 Rust 的開源生態(tài)系統(tǒng)。

facebook-social media_WBWKY1FQ2I.jpg

Rust 為開發(fā)者提供了類似 C++ 之類的老編程語言的性能,并更注重代碼的安全性。如今,在 Facebook 有數(shù)百名開發(fā)者在編寫數(shù)百萬行 Rust 代碼。很明顯, Facebook 未來在這門語言上的投入會越來越大。在分享未來的具體投入舉措之前,有必要先了解下 Facebook 早期是如何引入并使用 Rust 的。

2016~2017 年:早期用于源代碼控制

我們最古老的 Rust 代碼庫可以追溯到 2016 年。當時,F(xiàn)acebook 單體倉庫中的源代碼變化率開始“侵占” Mercurial 源代碼控制管理工具所能跟上的最大提交率。對此,F(xiàn)acebook 的源代碼控制團隊發(fā)起了一項名為 Mononoke 的重寫項目,旨在將 Mercurial 的提交率再提高一些數(shù)量級,從而滿足 Facebook 成千上萬的開發(fā)者和自動化流程。

起初,使用 C++ 開發(fā) Mononoke 顯然是個選擇。在那時,F(xiàn)acebook 的后端代碼庫對 C++ 非常重視,這意味著 Mononoke 默認會使用 C++ 實現(xiàn)。但是,源代碼控制團隊需要考慮源代碼控制管理后端的可靠性需求,如果服務(wù)因停機或損壞而造成停頓時,那么可靠性就成了首要的考慮因素。因此,團隊選擇使用 Rust 代替了 C++。

Mononoke 是一款優(yōu)秀的測試平臺,因為它和其他 Facebook 系統(tǒng)有著天然的隔閡。如果 Mononoke 能夠使用 Mercurial 協(xié)議與客戶端服務(wù)進行對話,并使用 Thrift 協(xié)議與某些存儲系統(tǒng)進行通信,那么選擇 Rust 不會影響源代碼控制團隊工作之外的任何事情。

源代碼控制團隊愿意采用并且能夠支持他們自己使用任何 Rust 特定的工具和基礎(chǔ)設(shè)施。從 2019 年開始,Mononoke 就已經(jīng)成為我們單體倉庫的生產(chǎn)后端,并在過去幾年里成功地擴大了規(guī)模。

2017~2019 年:采用曲線

Mononoke 足以證明采用 Rust 是可行的,隨著時間的推移,其他項目也開始考慮和采用 Rust。一開始,這些項目通常是開發(fā)者的工具項目,它們不需要與更廣泛的服務(wù)基礎(chǔ)設(shè)施進行集成,也不需要小型服務(wù) / 守護進程,只需圍繞一些 C++ 客戶端庫使用幾個手寫的包裝器就能完成工作。

在 Facebook 的 Rust 工程師中,有許多人具有 Python 和 JavaScript 的背景,他們很欣賞 Rust 結(jié)合了高性能與編譯時錯誤檢測這一特性。隨著越來越多的成功案例(例如性能提升了 2 到 4 個數(shù)量級等)在公司內(nèi)部流傳,人們對使用 Rust 實現(xiàn)后端服務(wù)代碼,以及探索其在移動應(yīng)用程序中的應(yīng)用的興趣越來越濃。

2019~2020 年:Rust 得到了一些專門支持

2017 年到 2019 年,源代碼控制團隊成為 Facebook 內(nèi)的非官方 Rust 支持團隊。到了 2019 年,F(xiàn)acebook 的 Rust 開發(fā)者數(shù)量成倍增長,達到 100 多人。

增長背后的原因之一是,Rust 是開發(fā) Diem(原 Libra)區(qū)塊鏈的主要語言,由獨立的 Diem 協(xié)會監(jiān)督,而 Facebook 的數(shù)字錢包 Novi 就是 Diem 協(xié)會的成員。Diem 區(qū)塊鏈主要是由 Rust 編寫的,并涵蓋了 94% 的開源代碼庫。

考慮到需求的增加,源代碼控制團隊的兼職協(xié)助并不足以支持受益的團隊數(shù)量。因此,我們創(chuàng)建了一個小型的 Rust 開發(fā)者體驗團隊,該團隊致力于解決工具和集成方面的挑戰(zhàn),比如在生產(chǎn)非 cargo 構(gòu)建中使用語言的開源包注冊表生態(tài)系統(tǒng)的機制。該團隊為整個公司的 Rust 開發(fā)者建立了一個中央連接點以解鎖用例,優(yōu)先考慮短期的開發(fā)者體驗問題,改進核心庫,并在剛剛起步的 Rust 代碼庫通過百萬行大關(guān)時為其成功奠定基礎(chǔ)。

未來(2021 年及以后)

2020 年底,我們在編程語言組織中成立了一個 Rust 團隊,以重申我們的承諾,該團隊還負責 Facebook 的 C++ 標準工作和工具鏈。

從近期來看,這個新團隊主要關(guān)注四個方面:

從語言和工具鏈的角度支持內(nèi)部用戶:這包括工具鏈的推出、橫切遷移、代碼審查 / 審計、最佳實踐,以及作為語言和工具鏈問題的連接點。

在 Facebook 以外的社區(qū)作出積極的貢獻:該團隊對標準庫和編譯器進行代碼審查,并為 Rust 社區(qū)的優(yōu)先事項提供開發(fā)者資源。

Rust 與 C++ 的輕松、安全的互操作性:我們擁有大量的 C++ 代碼,用于與服務(wù)所建立的后端系統(tǒng)的通信。在不犧牲 Rust 的優(yōu)點的情況下,我們需要開發(fā)者能夠安全、輕松地使用這些庫。相反,如果我們希望看到 Rust 組件與更大的 C++ 二進制文件集成,我們就需要智能運行時的異步代碼互操作性。Facebook 的服務(wù)器是高度分布式的,并且有大量線程。Rust 任務(wù)需要在 C++ 的線程池中良好運行,并且能夠安全地共享同步原語和 I/O 資源。為了提高異步性,支持并迅速采用了 C++20 的協(xié)程,我們在 C++ 方面做了很多工作。把 Rust 帶到游戲中就是它的擴展,它將建立在 Rust 在異步庫棧中已經(jīng)完成的出色工作的基礎(chǔ)上。

積極支持并參與 Rust 基金會的工作:自 2016 年以來,F(xiàn)acebook 一直致力于 Rust 社區(qū)并擴大其與 Rust 的發(fā)展。通過加入 Rust 基金會,我們成為白金會員,進一步履行這一承諾,并希望以一種積極和有影響力的方式幫助 Rust 繼續(xù)取得進展并得到應(yīng)用。

Facebook 的 Rust 之旅遠沒有結(jié)束。這支團隊雖小,但隨著支持需求的增加,會不斷壯大。Rust 在 Facebook 和整個行業(yè)的發(fā)展軌跡讓我們感到興奮和樂觀,F(xiàn)acebook 內(nèi)部的工作日程安排、開源貢獻和更多面向社區(qū)的工作都將在 2021 年展開。

來源:AI前線

作者:Sambodhi

編輯:leilei

圖片來源:

本文鏈接: http://givenhand.cn/article/20210709/1292.html

  • Rust
免責聲明:本網(wǎng)站出于傳播商業(yè)信息之目的進行轉(zhuǎn)載發(fā)布,不代表 AIUST.Com 立場。本文所涉文、圖、音視頻等資料之一切權(quán)利和法律責任歸提供方所有和承擔。本網(wǎng)站對文中的圖文等所有信息的真實性不作任何保證或承諾,請讀者僅作參考,并自行核實相關(guān)內(nèi)容。本網(wǎng)站的任何內(nèi)容僅供參考,不能做為投資、采購或行為決策依據(jù),據(jù)此操作者風險自擔。

相關(guān)文章

資訊

原創(chuàng)

薦讀

  • 5G+AR加持 晨星機器人掀起“智能化+人機交互”制造新趨勢 5G+AR加持 晨星機器人掀起“智能化+人機交互”制造新趨勢

    2021世界制造業(yè)大會于11月22日在合肥落下帷幕。為期四天的大會中,作為向世界展示智能制造全面能力的窗口,聯(lián)想展示了一系列讓人驚喜的創(chuàng)新產(chǎn)品?,F(xiàn)場展示的ThinkPad X1 Fold整體重量僅有1公斤,折疊起來之后的厚度大約為24毫米。當保持半開狀態(tài)時,可以像拿本書一樣握住,并且能同時運行兩個應(yīng)用程序。使用固定在中間的鍵盤之后,瞬間變...

  • 智能手機競爭中失敗,日本在聯(lián)網(wǎng)汽車領(lǐng)域舉步維艱 智能手機競爭中失敗,日本在聯(lián)網(wǎng)汽車領(lǐng)域舉步維艱

    據(jù)外媒報道,在制造帶有數(shù)字聯(lián)網(wǎng)服務(wù)的汽車的競爭中,豐田汽車和日產(chǎn)汽車面臨著被本土市場拖累的風險。與美國和歐洲的汽車消費者不同的是,日本消費者不愿意為這些聯(lián)網(wǎng)功能和服務(wù)買單。結(jié)果就是:日本只有10%的汽車...

  • 2020年河南省將推廣應(yīng)用3萬臺工業(yè)機器人 2020年河南省將推廣應(yīng)用3萬臺工業(yè)機器人

    到2020年,推廣應(yīng)用3萬臺工業(yè)機器人,建設(shè)1000條智能生產(chǎn)線、300個智能車間、150個智能工廠……4月16日,在2018兩岸智能裝備制造鄭州論壇上,河南省工信委發(fā)布了《2017年河南省智能制造白皮書》,河南智能制造的2020...

熱門標簽