本週 Rust 動態 533

2024-02-07

說明

本文由 ChatGPT(gpt-4-1106-preview) 翻譯。

歡迎閱讀Rust 本週動態的又一期內容! Rust 是一種賦予所有人建造可靠且高效軟體的程式語言。 這是對其進展和社群的每週摘要。 想要在這裡提及某些內容嗎?在 Twitter 上標記我們 @ThisWeekInRust 或在 mastodon.social 上的 @ThisWeekinRust,或者發送我們一個 pull 請求。 想要參與進來嗎?我們熱愛貢獻

Rust 本週動態 是在 GitHub 上公開開發的,並且存檔可以在 this-week-in-rust.org 查閱。 如果您發現本週的刊物中有任何錯誤,請提交一個 PR

來自 Rust 社群的更新

官方消息

基金會消息

項目/工具更新

觀察/想法

Rust 演練

雜項

本週的Crate

本週的crate是embedded-cli-rs,這是一個方便在嵌入式設備上創建命令列介面(CLI)的函式庫。

感謝Sviatoslav Kokurin自行推薦!

請提交您的建議並為下週投票

參與徵集:專案和講者

參與徵集 - 專案

一直想要對開放原始碼專案做出貢獻,但不知道從何下手? 每週我們會從 Rust 社群中挑選一些任務供您挑選並著手開始!

其中一些任務也許有導師可供咨詢,訪問任務頁面獲取更多資訊。

如果您是 Rust 專案擁有者,並且在尋找貢獻者,請在這裡提交任務。

參與徵集 - 講者

您是新手或有經驗的講者,尋找一個地方分享些酷的東西嗎?本節突出顯示正在計劃中的活動,並接受提交申請成為該活動的講者。

  • RustNL 2024 參與徵集 截止 2024-02-19 | 荷蘭德夫特 | 活動日期: 2024-05-07 至 2024-05-08
  • NDC Techtown 參與徵集截止 2024-04-14 | 挪威孔斯貝格 | 活動日期: 2024-09-09 至 2024-09-12

如果您是活動組織者並希望擴大您的活動影響範圍,請透過向 TWiR 提交 PR 提交提交網站的連結。

Rust 專案更新

在過去的一周內,有 309 個拉取請求被合併

這些更新顯示了Rust相關工具的持續改善,包括增加使用者體驗、穩定性、安全性和錯誤處理。

即將來臨的活動

2024年2月7日至2024年3月6日之間的Rusty活動 🦀

(本列表僅提供有關Rust語言相關活動的日期,實際活動內容、地點及詳細資訊,請關注相應組織者發布的最新消息。)

虛擬

亞洲

歐洲

北美洲

大洋洲

如果您正在舉辦Rust活動,請將其添加到日曆中,以便在此提及。請記得添加活動的鏈接。 若需獲取日曆訪問權限,請通過電子郵件聯繫[Rust社群團隊][community]。

工作機會

請查看最新的 Reddit r/rust 上的 Who's Hiring 討論串

本週名言

我的看法是,如果不了解 Arc、Mutex、變數/引用的可變性以及 async 和 await 語法最終如何編譯,你就無法正確且流暢地使用異步 Rust。Rust 強迫你了解事情為什麼會是這樣以及它們是如何運作的。它只給你最小抽象來做一些如果自己動手可能會很繁瑣的事情。

我有機會在兩個項目上工作,這些項目極大地迫使我理解 async/await 是如何工作的。第一個項目是將一個完全同步的庫轉換為,只需要一個同步特質就能與外部服務通訊。一切聽起來都很好,對吧?好吧,這成為問題當我們試圖移植它到瀏覽器時。瀏覽器是單線程的,根本不能阻塞 JavaScript 運行時!它可以說是 Rust 使用者最奇怪的環境。根本不可能重寫整個庫,因為它已經在其他平台的生產環境中發布了。

我們改為使用異步語法重寫了網絡部分,但使用了我們自己的生成器。這個想法很簡單:生成器在被調用時會產生一個未來(future),而產生的未來可以被等待。但是!產生的未來包含一個指向生成器的 arc 指針。這意味著我們可以將我們正在等待的值餵給生成器,然後持有生成器引用的調用者可以將結果餵回函數並恢復它。對於瀏覽器,我們使用原生瀏覽器 API 派生網絡通信;對於其他平台,我們只是使用常規的阻塞網絡呼叫。其他平台的外部介面保持不變。

老實說,我不認為其他任何語言可能做到這一點。也許是 C 或 C++,但它們絕對不會有相同的開發速度和開發者體驗。

我相信人們已經提到過,但 Rust 目前的異步模型是最合理的選擇。它確實為開發者造成了痛苦,但另一方面,沒有更好的異步模型適用於嵌入式或 WebAssembly。

/u/Top_Outlandishness78 在 /r/rust

感謝 Brian Kung 的建議!

請提交名言並為下一週投票!

《這週在 Rust》由以下編輯:nellshamrellllogiqcdmistmanericseppanenextrawurstandrewpollackU007Dkolharsamjoelmarceymariannegoldinbennyvasquez.

電子郵件列表主辦由 The Rust Foundation

在 r/rust 上討論