Skip to content

TeamDman/figue

 
 

Repository files navigation

figue

crates.io documentation MIT/Apache-2.0 licensed

figue (pronounced 'fig', like the fruit) provides configuration parsing from CLI arguments, environment variables, and config files, a bit like figment but based on facet reflection:

use facet_pretty::FacetPretty;
use facet::Facet;
use figue as args;

#[derive(Facet)]
struct Args {
    #[facet(args::positional)]
    path: String,

    #[facet(args::named, args::short = 'v')]
    verbose: bool,

    #[facet(args::named, args::short = 'j')]
    concurrency: usize,
}

# fn main() -> Result<(), Box<dyn std::error::Error>> {
let args: Args = figue::from_slice(&["--verbose", "-j", "14", "example.rs"])?;
eprintln!("args: {}", args.pretty());
Ok(())
# }

The entry point of figue is [builder] — let yourself be guided from there.

Color

figue uses facet-color for coloring output.

Contributing

Run hooks/install.sh to install pre-commit and pre-push hooks.

Sponsors

Thanks to all individual sponsors:

GitHub Sponsors Patreon

...along with corporate sponsors:

AWS Zed Depot

...without whom this work could not exist.

Special thanks

The facet logo was drawn by Misiasart.

License

Licensed under either of:

at your option.

About

A CLI, config file, and environment variables parser, based on facet

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Rust 99.8%
  • Other 0.2%