ceresdb: Rust 实现的高性能时序数据库
CeresDB 是一款高性能、分布式、Schema-less 的云原生时序数据库,能够同时处理时序型(time-series)以及分析型(analytics)负载。
该项目近日正式开源了,目前在快速迭代中,欢迎大家积极参与到该项目中。
Clap 发布 v3.2 版本
clap 是 Rust 中常用的命令行参数解析器,近日发布了 v3.2 版本,该版本也将是 v4.0 之前的最后一个版本。
v3.2 在 v3.1 的基础上,废弃了 Arg::validator
Arg::allow_invalid_utf8
等 API,引入了更加开放和灵活的 API,例如:
- Arg::value_parser
- ArgAction
以 ArgAction 为例,因为 clap 会在解析时推断出如何处理参数,在某些情况下,它并不能完全满足用户的需求,需要提供更明确的控制。现在通过指定一个 ArgAction,即可确定它与解析器的交互方式(目前,这是一个封闭的 API,但我们希望将来允许用户提供自己的操作)。
示例:
/*
#[non_exhaustive]
pub enum ArgAction {
Set,
Append,
StoreValue,
IncOccurrence,
SetTrue,
SetFalse,
Count,
Help,
Version,
}
*/
let cmd = Command::new("mycmd")
.arg(
Arg::new("quiet")
.long("quiet")
.action(clap::builder::ArgAction::SetTrue)
)
.arg(
Arg::new("verbose")
.long("verbose")
.action(clap::builder::ArgAction::Count)
);
let matches = cmd.try_get_matches_from(
["mycmd", "--quiet", "--quiet", "--verbose", "--verbose", "--verbose"]
).unwrap();
assert_eq!(
*matches.get_one::<bool>("quiet").expect("defaulted by clap"),
Some(true)
);
assert_eq!(
*matches.get_one::<u8>("verbose").expect("defaulted by clap"),
Some(3)
);
clap v3.2 版本将会稳定一个月左右,之后会开始 v4.0 版本的迭代,本次更新的详细信息可查看其更新日志
GBemulator:Rust 实现的 GameBoy 模拟器
GBemulator 是使用 Rust 从头开始编写的 Gameboy 模拟器,兼容 macOS、Linux 和 Windows 系统。该项目使用 wgpu 进行渲染,使用 cpal 进行音频输出,使用 egui 设计图形界面,目前完成度已经相当高,感兴趣的小伙伴不妨尝试一下该项目。
-- From 日报小组 RustPlumber
社区学习交流平台订阅:
评论区
写评论还没有评论