Rust 日報 20191010 Async 進入完善階段

webstar發表於2019-10-11

來自 Rust 官方 Blog 的博文更新:你可能已經聽說過,最近 async-await 功能登陸了 Rust beta 分支。這是 Rust Async 可用性方面的重要里程的標誌。但是仍然有很多工作要做,正如我們在主要帖子中提到的那樣,近期 Async Foundations WG(Async基礎設施工作組) 的重點將是完善、完善和(更加)完善!

特別是,我們要針對奇怪的診斷,效能欠佳以及偶發性的型別檢查失敗的待辦事項。這是一個轉變:而以前,我們可以將注意力集中在真正阻礙穩定的事物上,但是現在我們有了一大堆錯誤,而且往往沒有明確的優先順序。這需要我們改變 Async Foundations WG 的運作方式。

這是值得我們關注的事情,詳情請看原文:https://blog.rust-lang.org/inside-rust/201...

WebAssembly.sh 是一個可以直接在瀏覽器上執行 WASI 模組的線上 WebAssembly 終端。

繼上週我們釋出了 Wasmer-JS,我們背靠背地宣佈 WebAssembly.sh 也上線了。

WebAssembly.sh 目前可以提供如下功能:

  • WebAssembly.sh 是一種沙箱化的方法,可以快速測試或嘗試編譯到 WASI 的程式,而無需在本地機器上安裝二進位制檔案。
  • 編寫 WASI 模組的開發人員可以使用 WebAssembly.sh 在瀏覽器中除錯和測試它們!
  • 想找點樂子的人可以執行 Python rustpython,甚至輸出彩色小貓咪圖片,或者一頭牛!
  • 還有更多等待大家探索.

原文地址:https://medium.com/wasmer/webassembly-sh-4...

reddit 點選瞭解更多

reqwest 是基於 hyper 的 高層次 HTTP 客戶端。現在支援 async/await 特性的 alpha 版本。

目前reqwest值得說明的特性如下:

  • 新增對 std::future::Future 的支援。
  • 新增實驗性質的 WASM 支援。
  • 將預設的客戶端 API 更改為 async 的方式,將之前的同步 API 遷移到 reqwest::blocking
  • 將更多的特性設計為可選形式,這樣可以減少非必要的依賴(例如:blockingcookiesgzipjson

瞭解更多請檢視:https://t.co/qDcL5N2ng0?amp=1

這個庫為標準庫的 std::error:: error trait 提供了一個方便的派生巨集。

使用示例:

use thiserror::Error;

#[derive(Error, Debug)]
pub enum DataStoreError {
    #[error("data store disconnected")]
    Disconnect(#[source] io::Error),
    #[error("the data for key `{0}` is not available")]
    Redaction(String),
    #[error("invalid header (expected {expected:?}, found {found:?})")]
    InvalidHeader {
        expected: String,
        found: String,
    },
    #[error("unknown data store error")]
    Unknown,
}

瞭解更多請看GitHub倉庫:https://github.com/dtolnay/thiserror

參與 reddit 討論請點選

相關文章