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 在 命令行界面 分类中
567,112 每月下载量
被 650 个 crate (128 个直接使用) 使用
31KB
666 行
pic-args
一个极简单的 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-opt
或eq-separator
,您必须解析值之后的标志,以防止歧义
限制
pic-args 的主要基本限制是它以任意顺序解析参数。这是因为我们有一种“流式”API,并且我们事先不知道所有的键/参数。这可能导致一些意外的行为。具体来说,假设你有以下参数
--arg1 --arg2 value
如果你的解析器首先尝试将--arg1
作为键值对解析,那么它的值将是--arg2
而不是value
,因为解析器只是简单地取“下一个”参数。一个更好的解析器会知道--arg2
是一个键,并且由于缺少值将返回一个错误。
如果你的解析器首先尝试将--arg2
作为标志解析,然后尝试将--arg1
作为键值对解析,那么它的值将是value
,因为--arg2
已经被解析器移除,参数列表对解析器来说看起来像--arg1 value
。
如果你的应用程序不能接受这种行为,那么你必须使用一个更高级的参数解析库。
替代方案
pico-args
的核心思想是在不产生太多开销(二进制或编译时间)的情况下为参数解析提供一些“糖”。没有必要比较解析功能,因为pico-args
只支持最基本的。这里有一个各种参数解析库的优秀比较。
许可证
MIT