项目:garde
garde 是对 validator crate 的重写。
全面重写的原因在于 validator 在底层实现上存在一些问题。它使用普通函数来实现其验证规则,这意味着很难将这些规则用于自定义新类型和第三方 crate 类型之上。
这项工作是为了响应 validator 作者对维护的帮助呼吁而开始的,TA 也多次表达了对全面重写的渴望。
use garde::{Validate, Valid};
#[derive(Validate)]
struct User<'a> {
#[garde(ascii, length(min=3, max=25))]
username: &'a str,
#[garde(length(min=15))]
password: &'a str,
}
let user = User {
username: "test",
password: "not_a_very_good_password",
};
if let Err(e) = user.validate(&()) {
println!("invalid user: {e}");
}
crates.io - garde: https://crates.io/crates/garde
github - jprochazk/garde: https://github.com/jprochazk/garde
文章:Better support of Docker layer caching in Cargo
目前,对于 Cargo 项目来说,定义 Dockerfile 并跳过在任何源代码更改后重新构建依赖项并不容易。这意味着每个 Cargo 项目的 Docker 构建可能会非常缓慢,并且无法充分利用 Docker 层缓存。
这篇文章对 cargo build --dependencies-only 的动机,现有解决方法,先前的技术和可能的解决方案进行总结。原问题关注“提供一个Cargo命令来构建项目依赖项”,但并没有充分描述主要问题。而文中将其关注点变更为“修改 Cargo 以更好地支持 Docker 层缓存” 进行了深入的讨论。
Article - Better support of Docker layer caching in Cargo: https://hackmd.io/jgkoQ24YRW6i0xWd73S64A
Exploring the problem of faster Cargo Docker builds: https://www.reddit.com/r/rust/comments/126xeyx/exploring_the_problem_of_faster_cargo_docker/
This Week In Rust 488
新一期的 Rust 周报速递发布,快来看看有哪些内容你曾经关注过 :)
This Week in Rust 488: https://this-week-in-rust.org/blog/2023/03/29/this-week-in-rust-488/
From 日报小组 PsiACE
社区学习交流平台订阅:
评论区
写评论还没有评论