27 个版本 (7 个重大更改)

0.7.4 2024年5月22日
0.6.4 2023年9月30日

#2441 in 开发工具

Download history 140/week @ 2024-05-03 19/week @ 2024-05-10 538/week @ 2024-05-17 48/week @ 2024-05-24 5/week @ 2024-05-31 6/week @ 2024-06-07 2/week @ 2024-06-14 2/week @ 2024-07-05

每月下载量 1,694
3 crates 中使用

自定义许可

35KB
677 代码行

Clier

Rust 命令行参数解析器

Clier 是一个用于 Rust 的命令行参数解析器和命令框架。

解析器

要启动一个新的 CLI 项目,运行

$ cargo new demo
$ cargo add clier

然后在 main.rs 中定义您的 CLI

use clier_parser::Argv;

let args: Argv = Argv::parse();
println!("{:#?}", args);

并尝试运行它

$ cargo run -- command subcommand --test=value --no-production --help --try-me=false
Argv {
commands: [
"command",
"subcommand",
],
flags: {
"test": "value",
"production": "false",
"help": "true",
"try-me": "false",
},
}

框架

use clier::run::ExitCode;
use clier::{CliMeta, Clier, CmdCollection, CmdMeta, Commands};
fn main() {
  let clier_builder = Clier::parse().meta(CliMeta {
    name: "example-clier".into(),
    usage: Some("[command]".into()),
    description: "testing".into(),
    version: Some((0, 0, 0))
  });

  let app = clier_builder.runnable(vec![Commands::Collection(CmdCollection {
    meta: CmdMeta::new("testing", "testing"),
    children: Box::from([Commands::Command {
      meta: CmdMeta::new("testchild", "testing"),
      handler: |_| {
        println!("hello");
        ExitCode(0)
      }
    }])
  })]);

  app.run();
}


依赖项

~1.1–8.5MB
~65K SLoC