Rust 日报 20191010 Async 进入完善阶段

Async 基础工作更新:是时候开始完善了!

来自 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 上线

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 的 alpha 版本发布

reqwest 是基于 hyper 的 高层次 HTTP 客户端。现在支持 async/await 特性的 alpha 版本。

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

  • 新增对 std::future::Future 的支持。
  • 新增实验性质的 WASM 支持。
  • 将默认的客户端 API 更改为 async 的方式,将之前的同步 API 迁移到 reqwest::blocking
  • 将更多的特性设计为可选形式,这样可以减少非必要的依赖(例如:blockingcookiesgzipjson

了解更多请查看:https://t.co/qDcL5N2ng0?amp=1

thiserror:一个方便好用的derive(Error)

这个库为标准库的 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 讨论请点击

原文:https://rust.cc/article?id=45d61b8e-e828-4...

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 1

rust 是一个另类语言,让自己涨见识了。 :+1:

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!