11 个版本

0.5.0 2022年6月4日
0.4.2 2021年6月3日
0.4.1 2021年5月3日
0.4.0 2021年1月3日
0.2.0 2019年7月26日

39命令行界面 分类中

Download history 103731/week @ 2024-03-14 109664/week @ 2024-03-21 97818/week @ 2024-03-28 102948/week @ 2024-04-04 110739/week @ 2024-04-11 115791/week @ 2024-04-18 110564/week @ 2024-04-25 117599/week @ 2024-05-02 115136/week @ 2024-05-09 127806/week @ 2024-05-16 123836/week @ 2024-05-23 130474/week @ 2024-05-30 130397/week @ 2024-06-06 147049/week @ 2024-06-13 148382/week @ 2024-06-20 116403/week @ 2024-06-27

567,112 每月下载量
650 crate (128 个直接使用) 使用

MIT 许可证

31KB
666

pic-args

Build Status Crates.io Documentation Rust 1.32+

一个极简单的 CLI 参数解析器。

如果你认为这个库不支持某些功能,那可能是故意的。

  • 不支持帮助生成
  • 仅支持标志、选项、自由参数和子命令
  • 选项可以用空格、= 或无符号分隔。参见构建功能
  • 参数可以任意排序
  • 支持非 UTF-8 参数

构建功能

  • eq-separator

    允许解析由 = 分隔的参数
    此功能将大约增加 1KiB 到生成的二进制文件中

  • short-space-opt

    使短键和它们之间的空格变为可选(例如 -w10
    如果启用 eq-separator,则它具有优先权,并且不包括 '='。
    如果禁用 eq-separator,则 -K=value 将引发错误,而不是返回 "=value"
    可选空格仅适用于短键,因为 --keyvalue 将是不明确的

  • combined-flags

    允许组合标志,例如 -abc 而不是 -a -b -c
    如果启用 short-space-opteq-separator,您必须解析值之后的标志,以防止歧义

限制

pic-args 的主要基本限制是它以任意顺序解析参数。这是因为我们有一种“流式”API,并且我们事先不知道所有的键/参数。这可能导致一些意外的行为。具体来说,假设你有以下参数

--arg1 --arg2 value

如果你的解析器首先尝试将--arg1作为键值对解析,那么它的值将是--arg2而不是value,因为解析器只是简单地取“下一个”参数。一个更好的解析器会知道--arg2是一个键,并且由于缺少值将返回一个错误。

如果你的解析器首先尝试将--arg2作为标志解析,然后尝试将--arg1作为键值对解析,那么它的值将是value,因为--arg2已经被解析器移除,参数列表对解析器来说看起来像--arg1 value

如果你的应用程序不能接受这种行为,那么你必须使用一个更高级的参数解析库。

替代方案

pico-args的核心思想是在不产生太多开销(二进制或编译时间)的情况下为参数解析提供一些“糖”。没有必要比较解析功能,因为pico-args只支持最基本的。这里有一个各种参数解析库的优秀比较

许可证

MIT

无运行时依赖

功能