Rust 日報 20191015 AWS 開源專案部今天決定公開贊助 Rust 語言這個專案

webstar發表於2019-10-16

AWS’ Sponsorship of the Rust Project

by David Barsky, Arun Gupta, and Jacob Peddicord | on 14 OCT 2019 |

We’re really excited to announce that AWS is sponsoring the Rust programming language! Rust is designed for writing and maintaining fast, reliable, and efficient code. It has seen considerable uptake since its first stable release four years ago, with companies like Google, Microsoft, and Mozilla all using Rust. Rust has also seen lots of growth in AWS, with services such as Lambda, EC2, and S3 all choosing to use Rust in performance-sensitive components. We’ve even open sourced the Firecracker microVM project!

Jump

RxRust v0.3更新發布

在v0.2我們實現了所有運算子和可視執行緒的安全性之後,RxRust現在可以通過排程程式跨執行緒傳遞任務。這樣,所有使用者提供的閉包都必須滿足Send + Sync + 'static,甚至永遠不需要使用排程程式和多執行緒。

現在,我們移除了bounds的SyncSend'static,並新增了新的特性IntoShared。這樣可以為本地執行緒實現運算子,並實現IntoShared將其轉換為執行緒安全的運算子。預設情況下,RxRust始終使用單執行緒版本以獲得最佳效能,如果需要線上程中傳遞IntoShared物件,則使用RxRust 將本地物件轉換為執行緒安全的物件。

更新前:

let res = Arc::new(Mutex(0));
let c_res = res.clone();
observable::of(100).subscribe(|v| { *res.lock().unwrap() = *v });

assert_eq!(*res.lock().unwrap(), 100);

更新後:

let mut res = 0;
observable::of!(100).subscribe(|v| { res = *v });

assert_eq!(res, 100);

重要變化 移除 RxFn 和 RxValue

  • operators: 移除 Multicast

  • observable: 移除 ObservableOnce

  • observable: observable::from_vec 和 observable::from_range 函式整合到 巨集observable::from_iter! .

  • observable: observable::empty函式變為巨集observable::empty! .

  • observable: observable::of 函式變為巨集 observable::of! .

  • observable: observable::from_future函式變為巨集 observable::from_future!

  • observable: observable::from_future_with_err 函式變為巨集observable::from_future_with_err!

  • observable: observable::interval 函式變為巨集observable::interval!

詳細資訊前往GitHub檢視

Watt:由wasm支援的proc巨集(概念驗證),編譯時間幾乎為零

  • 編譯速度更快。 提前將巨集編譯為Wasm,可以節省該巨集的所有下游使用者的時間,他們不必自己編譯巨集邏輯或其依賴項。

  • 隔離性。 Watt是100%安全的程式碼,具有零依賴性。在此環境中程式碼執行時,巨集與外部世界的唯一可能的互動限於話費token和生成token。不管巨集本身可能包含多少不安全程式碼!由於Rust編譯器或標準庫中存在模組錯誤,因此巨集除了隨機播放令牌外不可能做任何其他事情。

  • 確定性。 從系統構建的角度來看,由Wasm支援的巨集具有以下優點:可以將其視為從輸入到輸出的純粹確定性函式。隱式依賴(例如通過檔案系統)是不存在的,構建系統對隱式依賴不可見或不考慮隱式依賴。

詳細資訊前往GitHub檢視

使Tokio排程程式快10倍的方法

排程程式的作用是排程工作。一個應用程式被分解為多個工作單元,我們將它們稱為任務。當任務可以進展時,它是可執行的;而在外部資源上被阻塞時,該任務將不可可執行(或空閒)。任務是獨立的,因為任何數量的可執行任務都可以同時執行。排程程式負責在執行狀態下執行任務,直到它們過渡回空閒狀態為止。執行任務意味著需要為任務分配CPU時間(一種全域性資源)。

有許多不同的建模排程程式的方法,每種方法各有利弊。

Tokio的第一個工作竊取排程程式於2018年三月問世,這是基於許多前者不正確的假設的首次嘗試。

有關Tokio的更多資訊前往官方部落格檢視

轉載:https://rust.cc/article?id=52b39c2d-32ee-4...

相關文章