reqwest 增加中间件支持
TrueLayer 团队用支持中间件的客户端reqwest-middleware
包装 reqwest
,并暴露相同的简单 API,在满足弹性和可观察性要求下,使其建立可重复使用的组件。开发人员可以通过导入几个 crate 并在客户端设置代码中添加with_middleware
调用来加强与远程 HTTP 的集成,这对任何其他应用的代码都不会造成干扰。
示例代码如下:
use reqwest_middleware::{ClientBuilder, ClientWithMiddleware};
use reqwest_retry::{RetryTransientMiddleware, policies::ExponentialBackoff};
use reqwest_tracing::TracingMiddleware;
#[tokio::main]
async fn main() {
let retry_policy = ExponentialBackoff::builder().build_with_max_retries(3);
let client = ClientBuilder::new(reqwest::Client::new())
.with(TracingMiddleware)
.with(RetryTransientMiddleware::new_with_policy(retry_policy))
.build();
run(client).await;
}
async fn run(client: ClientWithMiddleware) {
// free retries!
client
.get("https://some-external-service.com")
.header("foo", "bar")
.send()
.await
.unwrap();
}
原文链接,https://truelayer.com/blog/adding-middleware-support-to-rust-reqwest/
google_taxonomy,谷歌分类/产品类别
此 crate 的目的是为了更容易地与谷歌产品类别/分类一起工作。这是通过 google_taxonomy::ProductCategory
枚举提供的,其中包含截至 2021-08-13 的所有类别。
crate 链接,https://crates.io/crates/google_taxonomy
cargo-smart-release
cargo-smart-release,无所畏惧地发布工作空间 crate,无需处理依赖关系或版本。
与 cargo release 的比较
cargo-release 是这个工具存在的原因,因为它让我迷上了一个了解git的全自动化发布工作流程。截至2021-08-12,这对简单的工作区或单速率工作区来说是完美的,所以请使用它:cargo install cargo-release。
以下是 cargo smart-release 的不同之处。
- 安全地执行,所以默认情况下,它被解除了武装
- 指定一个或多个 crate,并自动检测哪些板块需要发布
- 处理依赖性循环,以增加整体成功的机会
- 当出现问题时,努力避免让工作区处于不一致的状态
- 成为 gitoxide 的 playground,为应用程序作者提供更多的便利和更多的可行性。
crate 链接,https://crates.io/crates/cargo-smart-release
【书籍】Black Hat Rust 早期访问版
Black Hat Rust 是一本深入研究使用 Rust 编程语言的进攻性安全(Offensive Security)的书籍,支持PDF,Kindle 和 Epub。
这本书是一项正在进行的工作。它可以在早期访问计划的背景下使用,这意味着各章节将在写完后立即发送给你,我们非常感谢你的反馈。当前状态:
可访问页数:250+ 代码进度:~90% (https://github.com/skerkour/black-hat-rust) 预计最终出版:Q3 2021 估计的页数:~320
备注:作者为感谢所有帮助其完成这本书的人,所有早期访问的买家还将获得以下奖励:一个高级恶意软件分析的策划清单。在开发自己的攻击性工具时,会在里面找到巨大的灵感。
书籍网址,https://academy.kerkour.com/black-hat-rust?coupon=BLOG
From 日报小组 洋芋
社区学习交流平台订阅:
评论区
写评论还没有评论