#cli #commandline #application #posix #gnu


A command line argument parsing library for Rust

12 releases (breaking)

0.8.0 Nov 29, 2018
0.6.0 Nov 14, 2018

#76 in Command-line interface

Download history 34/week @ 2018-12-12 51/week @ 2018-12-19 1/week @ 2018-12-26 26/week @ 2019-01-02 22/week @ 2019-01-09 14/week @ 2019-01-16 4/week @ 2019-01-23 3/week @ 2019-01-30 1/week @ 2019-02-13 13/week @ 2019-02-20 24/week @ 2019-02-27 4/week @ 2019-03-06 67/week @ 2019-03-20

129 downloads per month

MIT license


commandlines for Rust

Crates.io Build Status Build status codecov MIT License


commandlines is a command line argument parsing library for Rust command line interface application development. The goal is to support most POSIX/GNU program argument syntax conventions.

The project is in development and the library API is not stable. Please see the developer documentation at https://docs.rs/commandlines.

Current POSIX/GNU Argument Syntax Convention Support


  • Arguments are options if they begin with a hyphen delimiter (-)
  • Option names are single alphanumeric characters
  • Options typically precede other non-option arguments
  • The argument -- terminates all options; any following arguments are treated as non-option arguments, even if they begin with a hyphen
  • Options may be supplied in any order, or appear multiple times. The interpretation is left up to the particular application program
  • Long options consist of -- followed by a name made of alphanumeric characters and dashes. Option names are typically one to three words long, with hyphens to separate words
  • To specify an argument for a long option, write ‘--name=value’. This syntax enables a long option to accept an argument that is itself optional
  • Certain options require an argument. For example, the ‘-o’ command of the ld command requires an argument—an output file name
  • A token consisting of a single hyphen character is interpreted as an ordinary non-option argument. By convention, it is used to specify input from or output to the standard input and output streams.
  • Multiple options may follow a hyphen delimiter in a single token if the options do not take arguments. Thus, -abc is equivalent to -a -b -c

Not Available Yet

  • An option and its argument may or may not appear as separate tokens. (In other words, the whitespace separating them is optional.) Thus, ‘-o foo’ and ‘-ofoo’ are equivalent.

No runtime deps