2 unstable releases
0.1.1 | Dec 29, 2023 |
---|---|
0.0.1 | Jul 31, 2022 |
#381 in Configuration
19KB
272 lines
Applause
WARNING: Applause is not ready for use. It may not function yet.
Table of Contents
Overview
The Applause crate is the logical successor to Clap. It is intended to be a more flexible, more powerful, and more ergonomic command line argument parser.
Note: Applause is created by a completely different group and not, at this point, endorsed by Clap or its maintainers.
Clap's Legacy
Clap allowed Rust programmers to annotate an existing struct with attributes to define the command line interface. Clap then generated the parser needed to read command line parameters into that struct without any additional code. The approach was relatively simple and flexible.
Why Applause?
Applause is the logical successor of Clap. Clap was a great tool and deserves recognition. We considered using the name Clap2 in homage but thought that might be misconstrued as a new version of Clap. We decided to go with Applause to still pay tribute to Clap while also implying this crate is something special (worthy of applause).
Development Information
Goals
- Match Most Clap Capabilities
- Minimized Boilerplate through Opinionated Defaults (Batteries Included..just works without config)
- Defaults to ALL Features Enabled
- Defaults each Functionality to Automatically Configured and Running
-
Config
Parser & Generator Derive Macro- Parses and Generates to/from multiple sources
- Defaults
- Database
- SQLite
- MySQL
- PostgreSQL
- Key-Value Store
- Config Files
- TOML
- YAML
- JSON
- XML
- INI
- .ENV
- Environment Variables
- Command Line Interface
- Modular Parser/Generator (can insert sub-parsers into existing parsers)
- Deriving
Config
generates documentation from doc comments during compile- CLI Help
- Man Page
- Markdown
- Field attributes allow parsing/generating customization
- Format Strings
- RegEx
- Custom Function-Based Parsing
- Template File Specification
- Validation
- Type Conversion
- Sub-Parser/Generator Insertion
- Parses and Generates to/from multiple sources
- Feature Gate everything that isn't required to be in the core
- Easy Feature Addition by Developers (Plugins)
- Integration with Other Crates (behind Feature Gates)
- 100% Documentation Coverage
- 100% Test Coverage
- 100% Example Coverage
- Video Tutorials
Non-Goals
- Support for Every Possible Use Case
- Backwards Compatibility with Clap
Dependencies
~210KB