17 个不稳定版本 (4 个破坏性更新)
0.5.0 | 2023年4月18日 |
---|---|
0.4.1 | 2022年11月26日 |
0.4.0 | 2022年10月8日 |
0.3.3 | 2022年8月10日 |
0.1.4 | 2022年5月30日 |
#539 in 命令行界面
每月下载量 116
用于 2 crates
79KB
1.5K SLoC
CLI Batteries
意见一致的命令行界面运行时实用工具。
要使用它,将其添加到您的 Cargo.toml
[dependencies]
cli-batteries = "0.1"
[build-dependencies]
cli-batteries = "0.1"
并在您的 build.rs
中调用 build_rs
函数
fn main() {
cli_batteries::build_rs().unwrap()
}
然后在您的 src/main.rs
中定义应用程序特定的命令行参数使用 [clap::Parser
][clap] 并如下运行应用程序
use cli_batteries::{version, Parser};
use std::{path::PathBuf, io::Result};
use tokio::fs::File;
#[derive(Parser)]
#[group(skip)]
struct Options {
/// File to read
#[clap(long, env, default_value = "Readme.md")]
file: PathBuf,
}
async fn app(options: Options) -> Result<()> {
let mut file = File::open(options.file).await?;
Ok(())
}
fn main() {
cli_batteries::run(version!(), app);
}
您可以在 示例项目中 看到这个工作的样子。
功能
signals
: 以优雅的方式处理 Ctrl-C、SIGINT 和 SIGTERM。mimalloc
: 使用启用了安全强化功能的 mimalloc 分配器。rand
: 记录和配置随机种子。rayon
: 记录和配置线程数量。prometheus
: 启动 Prometheus 指标服务器。metered-allocator
: 收集内存分配指标,启用prometheus
。mock-shutdown
: 启用reset_shutdown
函数,允许在测试中重新启动关闭。tokio-console
: 启用--tokio-console
选项,在http://127.0.0.1:6669/
上启动 Tokio 控制台服务器进行异步检查。otlp
: 启用--trace-otlp
选项,将跟踪推送到 OpenTelemetry 收集器。
构建和测试
格式化、检查、构建和测试一切(我建议为这个创建一个 shell 别名)
cargo fmt &&\
cargo clippy --all-features --all-targets &&\
cargo test --workspace --all-features --doc -- --nocapture &&\
cargo test --workspace --all-features --all-targets -- --nocapture &&\
cargo doc --workspace --all-features --no-deps
检查文档覆盖率
RUSTDOCFLAGS="-Z unstable-options --show-coverage" cargo doc --workspace --all-features --no-deps
待办事项
目标
也许
依赖关系
~19–37MB
~577K SLoC