Command line flag and option parse utilities.
no_std
and std
are supported.-a
)--long
)-abc
::= -a
-b
-c
)-long
)--abbr
::= --abbreviate
)no_std
/a
)in examples directory.
This parser is not a new special idea. It's just comparing characters one by one. Is there anything simpler than this?
The comparing performance and .text size.
| name
| bench
| .text
| Δ bench
| Δ .text
|
|:-------------------|------------:|---------:|------------:|---------:|
| cmpnullvoid | 1.327 kc | 316 kib | 0.000 kc | 0 kib |
| cmpfloodtide | 6.315 kc | 356 kib | 4.988 kc | 40 kib |
| cmppurerust | 7.951 kc | 368 kib | 6.624 kc | 52 kib |
| cmpgumdrop | 11.346 kc | 432 kib | 10.019 kc | 116 kib |
| cmpargh | 20.851 kc | 385 kib | 19.524 kc | 69 kib |
| cmppicoargs | 39.187 kc | 393 kib | 37.860 kc | 77 kib |
| cmprustop | 379.726 kc | 465 kib | 378.399 kc | 149 kib |
| cmpclap | 415.422 kc | 988 kib | 414.095 kc | 671 kib |
| cmpclap3 | 495.219 kc | 840 kib | 493.893 kc | 524 kib |
| cmpstructopt | 553.679 kc | 862 kib | 552.352 kc | 546 kib |
| cmpgetopts | 637.986 kc | 395 kib | 636.659 kc | 78 kib |
| cmpcommander | 665.407 kc | 412 kib | 664.080 kc | 95 kib |
| cmplapp | 1115.093 kc | 451 kib | 1113.766 kc | 135 kib |
| cmpargs | 2101.706 kc | 427 kib | 2100.379 kc | 110 kib |
| cmp_app | 2192.245 kc | 630 kib | 2190.918 kc | 313 kib |
| name
| bench
| .text
| Δ bench
| Δ .text
|
|:-------------------|------------:|---------:|------------:|---------:|
| cmpnullvoid | 1.405 kc | 316 kib | 0.000 kc | 0 kib |
| cmpfloodtide | 5.603 kc | 356 kib | 4.197 kc | 40 kib |
| cmppurerust | 7.845 kc | 368 kib | 6.439 kc | 52 kib |
| cmpgumdrop | 8.737 kc | 432 kib | 7.332 kc | 116 kib |
| cmpargh | 23.114 kc | 385 kib | 21.708 kc | 69 kib |
| cmppicoargs | 41.325 kc | 393 kib | 39.920 kc | 77 kib |
| cmprustop | 394.432 kc | 465 kib | 393.026 kc | 149 kib |
| cmpclap | 426.678 kc | 988 kib | 425.273 kc | 671 kib |
| cmpclap3 | 495.857 kc | 840 kib | 494.452 kc | 524 kib |
| cmpstructopt | 576.224 kc | 862 kib | 574.818 kc | 546 kib |
| cmpgetopts | 657.353 kc | 395 kib | 655.948 kc | 78 kib |
| cmpcommander | 673.761 kc | 412 kib | 672.356 kc | 95 kib |
| cmplapp | 1089.452 kc | 451 kib | 1088.047 kc | 135 kib |
| cmpargs | 2066.320 kc | 427 kib | 2064.915 kc | 110 kib |
| cmp_app | 2171.903 kc | 630 kib | 2170.498 kc | 313 kib |
us
is micro seconds.text
is elf .text section sizeΔ
(delta) is the difference from cmpnullvoidcmp_null_void
is non parser, support only --help
and --version
cmp_pure_rust
is newly written with sting matchThis project is licensed under either of
at your option.