5 stable releases
1.4.1 | Mar 9, 2025 |
---|---|
1.4.0 | Feb 28, 2025 |
1.2.0 | Jan 20, 2025 |
#278 in Command-line interface
321 downloads per month
80KB
1.5K
SLoC
Just Getopt
A getopt-like command-line parser for the Rust language
Introduction
This Rust language library crate implements a Posix getopt
-like
command-line option parser with simple programming interface. More
specifically the parser is like getopt
’s GNU extension called
getopt_long
which is familiar command-line option format for users of
Linux-based operating systems.
The name is Just Getopt because this is just a getopt parser and (almost) nothing more. The intent is to provide the parsed output and basic methods for examining the output. There will not be anything for interpreting the output or for printing messages to program’s user. The responsibility of interpretation is left to your program.
In getopt logic there are two types of command-line options:
- short options with a single letter name (
-f
) - long options with more than one letter as their name (
--file
).
Both option types may accept an optional value or they may require a value. Values are given after the option.
Availability
The crate is available at Github and crates.io and it can added
to a Rust project with command cargo add just-getopt
. The Github site
has information about releases and issues.
Documentation is available at docs.rs. From the source code
directory the documentation can be built and shown in a web browser with
command cargo doc --open
.
Also see file examples/basic.rs for basic programming examples.
Plans for 2.0
Possible backward-incompatible changes for the future 2.0 release.
- Some methods of
Args
struct no longer return a vector. They return a type that implements theDoubleEndedIterator
trait. - Enum
OptValueType
is renamed toOptValue
. The enum is marked as non-exhaustive: more variants are added in 2.0 and can be added later.
License
Author: Teemu Likonen <tlikonen@iki.fi>
OpenPGP key: 6965F03973F0D4CA22B9410F0F2CAE0E07608462
License: Creative Commons CC0 (public domain dedication)