clap 0.4.2

A Command Line Argument Parser written in Rust failed to build clap-0.4.2
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure builds.
If you believe this is' fault, open an issue.
Visit the last successful build: clap-4.4.4

clap Travis-CI

Command Line Argument Parser written in Rust

A simply library for parsing command line arguments and subcommands when writing command line and console applications.

You can use clap to lay out a list of possible valid command line arguments and subcommands, then let clap parse the string given by the user at runtime.

When using clap you define a set of parameters and rules for your arguments and subcommands, then at runtime clap will determine their validity.

clap also provides the traditional version and help switches 'for free' by parsing the list of possible valid arguments lazily at runtime, and if not already defined by the developer clap will autogenerate all applicable "help" and "version" switches (as well as a "help" subcommand if other subcommands are defined as well).

After defining a list of possible valid arguments and subcommands, clap gives you a list of valid matches that the user supplied at runtime, or informs the user of their error and exits gracefully. You can use this list to determine the functioning of your program.

Quick Example

// (Full example with comments in examples/
extern crate clap;
use clap::{Arg, App, SubCommand};

fn main() {
	let matches = App::new("MyApp")
							.author("Kevin K. <>")
							.about("Does awesome things")
										.help("Sets a custom config file")
										.help("Sets an optional output file")
										.help("Turn debugging information on"))
										.about("controls testing features")
											.help("print test information verbosely")))
	if let Some(o) = matches.value_of("output") {
		println!("Value for output: {}", o);
	if let Some(c) = matches.value_of("config") {
		println!("Value for config: {}", c);
	match matches.occurrences_of("debug") {
		0 => println!("Debug mode is off"),
		1 => println!("Debug mode is kind of on"),
		2 => println!("Debug mode is on"),
		3 | _ => println!("Don't be crazy"),
	if let Some(ref matches) = matches.subcommand_matches("test") {
		if matches.is_present("list") {
			println!("Printing testing lists...");
		} else {
			println!("Not printing testing lists...");
	// more porgram logic goes here...

If you were to compile the above program and run it with the flag --help or -h (or help subcommand, since we defined test as a subcommand) the following output woud be presented

$ myprog --help
MyApp 1.0
Kevin K. <>
Does awesome things


	-d   			Turn debugging information on
	-h,--help		Prints this message
	-v,--version	Prints version information
	-c,--config <config>		Sets a custom config file

	output			Sets an optional output file

	help			Prints this message
	test			Controls testing features


Add clap as a dependecy in your Cargo.toml file to use from

clap = "*"

Or track the latest on the master branch at github:

git = ""

Then run cargo build or cargo update for your project.


Add extern crate clap; to your crate root.

More Information

You can find complete documentation on the github-pages site for this project.