Async 基础工作更新:是时候开始完善了!
来自 Rust 官方 Blog 的博文更新:你可能已经听说过,最近 async-await 功能登陆了 Rust beta 分支。这是 Rust Async 可用性方面的重要里程的标志。但是仍然有很多工作要做,正如我们在主要帖子中提到的那样,近期 Async Foundations WG(Async基础设施工作组) 的重点将是完善、完善和(更加)完善!
特别是,我们要针对奇怪的诊断,性能欠佳以及偶发性的类型检查失败的待办事项。这是一个转变:而以前,我们可以将注意力集中在真正阻碍稳定的事物上,但是现在我们有了一大堆错误,而且往往没有明确的优先级。这需要我们改变 Async Foundations WG 的运作方式。
这是值得我们关注的事情,详情请看原文:https://blog.rust-lang.org/inside-rust/2019/10/07/AsyncAwait-WG-Focus-Issues.html
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-408b010c14db
reddit 点击了解更多
reqwest 的 alpha 版本发布
reqwest 是基于 hyper 的 高层次 HTTP 客户端。现在支持 async/await 特性的 alpha 版本。
目前reqwest值得说明的特性如下:
- 新增对 std::future::Future 的支持。
- 新增实验性质的 WASM 支持。
- 将默认的客户端 API 更改为 async 的方式,将之前的同步 API 迁移到 reqwest::blocking。
- 将更多的特性设计为可选形式,这样可以减少非必要的依赖(例如:blocking, cookies, gzip, json)
了解更多请查看: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 讨论请点击。
日报订阅地址:
独立日报订阅地址:
- Telgram Channel
- 阿里云语雀订阅
- Steemit
- GitHub
社区学习交流平台订阅:
- Rust.cc论坛: 支持rss
- Rust Force: 支持rss
- 微信公众号:Rust语言学习交流