天天看點

【Rust日報】2019-09-18 async-std v0.99.6 版本更新

async-std v0.99.6 版本更新

這個版本增加了幾個新的組合器、

work-stealing

算法執行器,以及使用

IntoStream

FromStream

collect

流的能力。

此外,async-attributes 1.0 已經釋出,它增加了對

async fn main

,

#[test] async fn

#[bench] async fn

的支援。

使用示例
let a = stream::once(1u8);
let b = stream::once(2u8);
let c = stream::once(3u8);

let s = stream::join!(a, b, c);

assert_eq!(s.collect().await, vec![1u8, 2u8, 3u8]));
           

複制

詳情檢視

Reddit 讨論:https://www.reddit.com/r/rust/comments/d6eb4g/asyncstd_v0996_released/

使用 rust 去編譯 WebAssembly

@_lrlna@twitter 在 RustConf 2019 上做了個演講,通過使用 rust 編譯 webassembly,并提升性能。

内容簡要如下:

你應該了解到在浏覽器中可運作 WebAssembly,但是這看起來像 IRL 嗎?為了尋求在浏覽器中運作 WASM 所帶來的性能優勢,

Compass

(用于 MongoDB 的 GUI)邁出了一大步,在 Rust 中重寫了應用程式的一部分——一個負責文檔分析的模式解析器。事實證明:将應用程式的某些部分使用 Rust 重寫會使它更快。

在這次演講中,将介紹如何将部分代碼從 JavaScript 轉換為 Rust,通過綁定 Electron,将 WASM 添加到現有的 React 應用程式中,并将其部署到生産環境中。因為

Compass

仍然通過 Nodejs 與 MongoDB 通信。此外還介紹了如何使用 Rust 在不丢失資料完整性的情況下提高性能。演講過程中還包含了我們遇到了什麼難題以及如何克服的。

演講視訊位址:https://www.youtube.com/watch?v=lLzFJenzBng&feature=youtu.be

Xcode 的 rust 工具鍊 - rust-bitcode

在Rust的标準版本中,ARM64 iOS目标中的位代碼通常與 Xcode 不相容,因為它們使用不同版本的LLVM。這是一個衆所周知的問題,目前還沒有明确的長期解決方案。

這個存儲庫包含用于建構和安裝自定義 Rust nightly 的腳本,其中 Rust 編譯器版本的 LLVM 與 Xcode 比對。使用此工具鍊建構的軟體可以包含在支援位碼的應用程式中,這些應用程式将安裝在真正的 iOS 裝置上。

了解更多請看:https://github.com/getditto/rust-bitcode

Rust 在物聯網(IoT)的應用

演講介紹了編寫運作微控制器的 Rust 技巧,并調查已經現有生态系統中可用的優秀嵌入式Rust項目。

如果您的物聯網項目在 ARM 或 MSP430 上,那麼它已經在 Rust 編譯器中獲得了本地支援,AVR和RISC-V也有可用的編譯器分支。但是架構支援隻是第一個挑戰:如果您習慣于為運作作業系統的主機編寫Rust,那麼在嵌入式世界中必須自己完成所有工作的範式轉換可能會很不協調。

更多請原文視訊位址:https://morioh.com/p/73aac331a451

From 日報小組 @Jancd

日報訂閱位址:

獨立日報訂閱位址:

  • Telgram Channel
  • 阿裡雲語雀訂閱
  • Steemit
  • GitHub

社群學習交流平台訂閱:

  • Rust.cc論壇: 支援rss
  • Rust Force: 支援rss
  • 微信公衆号:Rust語言學習交流