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

Download history 198/week @ 2025-01-01 169/week @ 2025-01-08 109/week @ 2025-01-15 14/week @ 2025-01-22 10/week @ 2025-01-29 142/week @ 2025-02-05 20/week @ 2025-02-12 8/week @ 2025-02-19 160/week @ 2025-02-26 128/week @ 2025-03-05 23/week @ 2025-03-12

321 downloads per month

CC0 license

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:

  1. short options with a single letter name (-f)
  2. 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 the DoubleEndedIterator trait.
  • Enum OptValueType is renamed to OptValue. 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)

No runtime deps