5 个版本 (3 个重大变更)
0.5.0 | 2022 年 7 月 6 日 |
---|---|
0.4.1 | 2019 年 11 月 27 日 |
0.3.0 | 2019 年 11 月 25 日 |
0.2.0 | 2019 年 11 月 21 日 |
0.1.0 |
|
#603 在 命令行界面
26,190 每月下载量
用于 8 crates
71KB
909 行
getargs
一个真正的零成本参数解析器,类似于 Unix 的 getopts
。
关于
getargs
是一个低级、高效且通用的参数解析器,其工作方式类似于 getopts
。它通过生成一个选项流来工作,并在每个选项之后,您的代码决定是否需要检索该选项的值。
您无需预先声明一个有效选项列表,因此 getargs
不需要为它们分配空间或在运行时搜索它们。这也意味着您必须自己编写帮助信息,但由于 --help
只是一个另一个标志,因此对其使用没有限制。
特性
- 短
-f
和长--flag
标志 - 必需的隐式值
-i VALUE
和--implicit VALUE
- 必需或可选的显式值
-eVALUE
和--explicit=VALUE
- 位置参数和
--
- 在参数列表的开始处或任何地方解析选项
好处
- 零成本
- 零复制
- 零不安全代码
- 零依赖
- 零分配
- 简单易用且功能丰富
#![no_std]
-兼容- 兼容于
&str
和&[u8]
性能
getargs
在性能分析和优化方面受到了很多关注,在现代机器上,解析包含12个参数的短数组仅需0.2μs。
在我们的测试中,getargs
比crates.io上的所有其他参数解析库都要快。它的最接近的竞争对手是 gumdrop
,最坏情况下仅慢30%,其次是 getopt
,其速度是其三倍。其他库的性能会迅速下降;clap
比它慢45倍。(但这个比较并不完全公平,因为 clap
不仅仅是一个参数解析库,而是一个完整的命令行应用程序框架。它可能对于简单任务来说有些过度配置。)
示例
有关示例,请参阅 [示例目录][./examples/] 中的小型程序,您可以自行编译并运行这些程序,以查看 getargs
的工作方式。