16 个版本

0.2.11 2024 年 6 月 9 日
0.2.10 2023 年 2 月 12 日
0.2.9 2023 年 1 月 27 日
0.2.5 2022 年 6 月 13 日
0.1.17 2020 年 12 月 25 日

120命令行界面 中排名

Download history 42/week @ 2024-04-29 33/week @ 2024-05-06 32/week @ 2024-05-13 57/week @ 2024-05-20 35/week @ 2024-05-27 244/week @ 2024-06-03 70/week @ 2024-06-10 618/week @ 2024-06-17 45/week @ 2024-06-24 30/week @ 2024-07-08 41/week @ 2024-07-15 49/week @ 2024-07-22 42/week @ 2024-07-29 46/week @ 2024-08-05 66/week @ 2024-08-12

每月 208 次下载
13 Crates 中使用(12 个直接使用)

MIT/Apache

56KB
956

洪水潮

crate Docs Rust Version Apache2/MIT licensed Test ubu Test mac Test win

命令行标志和选项解析工具。

功能

  • no_stdstd 都支持。
  • 标志、选项、子命令和自由参数
  • 短标志和选项(如 -a
  • 长标志和选项(如 --long
  • 组合短标志(如 -abc ::= -a -b -c
  • 单个长选项(如 -long
  • 缩写长选项(如 --abbr ::= --abbreviate
  • 单个错误或多个错误
  • 仅支持 UTF-8 参数
  • 可以通过编译开关以最佳方式使用具有许多功能的编译器。
  • 最小支持 rustc 1.56.1 (59eed8a2a 2021-11-01)

待办事项

  • 多个错误
  • 无 std
  • 选项建议(你是否指的是?'--abc')
  • Windows 风格(如 /a
  • 支持源代码生成工具
  • 更易于使用

不支持

  • 过程宏风格
  • 传统宏风格
  • 非 UTF-8 参数,多字节或宽字符

示例

示例目录 中。

  • 手动编码风格:bsd-sed.rs,gnu-cat.rs
  • 单个长选项:ffmpeg.rs
  • 通过 xtask 和 parse_simple_gnu_style() 生成源代码:curl.rs

支持

替代方案

这个解析器并没有什么新奇的点。它只是逐个比较字符。还有什么比这更简单吗?

基准测试

比较性能和.text大小。

  • 由 rustc 1.66.0 (69f9c33d7 2022-12-12) 编译
名称 基准 .文本 Δ基准 Δ.文本
cmp_null_void 1.327 kc 316 kib 0.000 kc 0 kib
cmp_flood_tide 6.315 kc 356 kib 4.988 kc 40 kib
cmp_pure_rust 7.951 kc 368 kib 6.624 kc 52 kib
cmp_gumdrop 11.346 kc 432 kib 10.019 kc 116 kib
cmp_argh 20.851 kc 385 kib 19.524 kc 69 kib
cmp_pico_args 39.187 kc 393 kib 37.860 kc 77 kib
cmp_rustop 379.726 kc 465 kib 378.399 kc 149 kib
cmp_clap 415.422 kc 988 kib 414.095 kc 671 kib
cmp_clap3 495.219 kc 840 kib 493.893 kc 524 kib
cmp_structopt 553.679 kc 862 kib 552.352 kc 546 kib
cmp_getopts 637.986 kc 395 kib 636.659 kc 78 kib
cmp_commander 665.407 kc 412 kib 664.080 kc 95 kib
cmp_lapp 1115.093 kc 451 kib 1113.766 kc 135 kib
cmp_args 2101.706 kc 427 kib 2100.379 kc 110 kib
cmp_app 2192.245 kc 630 kib 2190.918 kc 313 kib
  • 由 rustc 1.57.0 (f1edd0429 2021-11-29) 编译
名称 基准 .文本 Δ基准 Δ.文本
cmp_null_void 1.405 kc 316 kib 0.000 kc 0 kib
cmp_flood_tide 5.603 kc 356 kib 4.197 kc 40 kib
cmp_pure_rust 7.845 kc 368 kib 6.439 kc 52 kib
cmp_gumdrop 8.737 kc 432 kib 7.332 kc 116 kib
cmp_argh 23.114 kc 385 kib 21.708 kc 69 kib
cmp_pico_args 41.325 kc 393 kib 39.920 kc 77 kib
cmp_rustop 394.432 kc 465 kib 393.026 kc 149 kib
cmp_clap 426.678 kc 988 kib 425.273 kc 671 kib
cmp_clap3 495.857 kc 840 kib 494.452 kc 524 kib
cmp_structopt 576.224 kc 862 kib 574.818 kc 546 kib
cmp_getopts 657.353 kc 395 kib 655.948 kc 78 kib
cmp_commander 673.761 kc 412 kib 672.356 kc 95 kib
cmp_lapp 1089.452 kc 451 kib 1088.047 kc 135 kib
cmp_args 2066.320 kc 427 kib 2064.915 kc 110 kib
cmp_app 2171.903 kc 630 kib 2170.498 kc 313 kib
  • us 是微秒
  • .text 是 elf .text 段大小
  • Δ(delta) 是与 cmp_null_void 的差值
  • cmp_null_void 是非解析器,只支持 --help--version
  • cmp_pure_rust 是使用字符串匹配新编写的
  • 在 intel Q6600 @ 2.40GHz 上进行基准测试
  • 参考 各种解析器的比较

变更日志

此 crate 的变更日志在此。

许可证

本项目许可方式为

根据您的选择。

无运行时依赖。

功能