Skip to content

ciresnave/applause

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Applause

You deserve 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
  • 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

About

Command Line Interfaces and Configuration Management made easy

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages