2 stable releases

new 1.2.0 Jan 20, 2025
1.1.0 Jan 11, 2025
1.0.1 Jan 6, 2025

#404 in Command-line interface

Download history 198/week @ 2025-01-01 169/week @ 2025-01-08

367 downloads per month

CC0 license

63KB
1K 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 just the parsed output and 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.

Usage and Documentation

The crate is available at Github and crates.io and it can added to a Rust project with command cargo add just-getopt.

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.

Why Another Command-line Parser

Yes, there are many command-line parsers for the Rust language but I didn’t like any of them. Actually I like clap quite much and would probably use it in a program with complex Git-like sub command interface. But other than that it does too much and feels like controlling my program. What about just a getopt parser with simple programming interface and without other magic? Just Getopt is my idea of good getopt parser interface. I hope you like it. If not, well, there are many options.

License

Author: Teemu Likonen <tlikonen@iki.fi>

OpenPGP key: 6965F03973F0D4CA22B9410F0F2CAE0E07608462

License: Creative Commons CC0 (public domain dedication)

No runtime deps