#clap #env-var #wildcard #expand #wild #packages #argfile

no-std clientele

Clientele packages clap, camino, dotenvy, argfile, and wild into one dependency

10 releases

new 0.2.5 Jan 13, 2025
0.2.4 Oct 15, 2024
0.1.4 Sep 8, 2024
0.1.3 Aug 23, 2024
0.0.1 Aug 21, 2024

#386 in Command-line interface

44 downloads per month
Used in 4 crates (2 directly)

Unlicense

27KB
433 lines

Clientele.rs

License Compatibility Package Documentation

Clientele makes it easy to write superb command-line utilities in Rust that follow consistent best practices on all target platforms including Linux, macOS, and Windows. It packages and re-exports clap, camino, dotenvy, argfile, and wild into a single easy dependency.

✨ Features

  • Showcases how to structure a CLI program in Rust (see the examples).
  • Loads environment variables from .env files (using the dotenvy crate).
  • Expands wildcards (globs) on Windows (using the wild crate).
  • Expands @argfiles similarly to javac or Python (using the argfile crate).
  • Defines a standard set of essential CLI options (using the clap crate).
  • Provides the Utf8Path and Utf8PathBuf types (using the camino crate).
  • Recommends use of the sysexits.h(3) exit codes (see sysexits.rs).
  • Supports opting out of any feature using comprehensive feature flags.
  • Adheres to the Rust API Guidelines in its naming conventions.
  • 100% free and unencumbered public domain software.

🛠️ Prerequisites

⬇️ Installation

Installation via Cargo

cargo add clientele

👉 Examples

See lib/clientele/examples/skeleton/main.rs for a complete example.

Importing the library

use clientele::*;

📚 Reference

Options

StandardOptions

Options:
      --color <COLOR>  Set the color output mode [default: auto] [possible values: auto, always, never]
  -d, --debug          Enable debugging output
      --license        Show license information
  -v, --verbose...     Enable verbose output (may be repeated for more verbosity)
  -V, --version        Print version information
  -h, --help           Print help

👨‍💻 Development

git clone https://github.com/dryrust/clientele.rs.git

Share on Twitter Share on Reddit Share on Hacker News Share on Facebook

Dependencies

~0.2–14MB
~125K SLoC