poafloc

poafloc - Parser Of Arguments For Lines Of Commands
git clone git://git.dimitrijedobrota.com/poafloc.git
Log | Files | Refs | README | LICENSE

README.md (1849B)


      1 # Poafloc
      2 
      3 Command-line argument parser for C and C++ written in C++20
      4 
      5 ## Description
      6 
      7 This project is heavily inspired by GNU argp and the initial goal was to have
      8 a drop in replacement. I've managed to implement most of the features I plan
      9 on using, but there is still space for future improvements, maybe even in
     10 other directions.
     11 
     12 The main motivation behind this project is gaining an in depth understanding
     13 of all of the syntax rules of command line arguments, to be used for all of
     14 the UNIX utilities.
     15 
     16 This project included a few challenges in both the design and implementation.
     17 There was a lot of experimentation with interface that works for both C and
     18 C++, as well as having a single library that provides bindings and works with
     19 both languages simultaneously. There were a lot of caveats and edge cases to
     20 be understood first, and later implemented.
     21 
     22 
     23 ## Dependencies
     24 
     25 * CMake 3.25.2 or latter
     26 * Compiler with C++20 support (tested: clang 16.0.5, gcc 13.2.0)
     27 
     28 
     29 ## Building and installing
     30 
     31 See the [BUILDING](BUILDING.md) document.
     32 
     33 
     34 ## Usage
     35 
     36 > Please reference example folder for relevant usage example.
     37 
     38 
     39 ## Help
     40 
     41 Refer to [GNU argp documentation](https://www.gnu.org/software/libc/manual/html_node/Argp.html)
     42 
     43 
     44 ## Version History
     45 
     46 - 1.1
     47     * Modernize CMake project
     48     * Modernize codebase
     49     * Add test suite
     50 
     51 - 1.0
     52     * Initial Release
     53 
     54 
     55 ## Contributing
     56 
     57 See the [CONTRIBUTING](CONTRIBUTING.md) document.
     58 
     59 
     60 ## License
     61 
     62 This project is licensed under the MIT License -
     63 see the [LICENSE](LICENSE.md) document for details
     64 
     65 
     66 ## Acknowledgments
     67 
     68 Inspiration, code snippets, etc.
     69 * [GNU argp documentation](https://www.gnu.org/software/libc/manual/html_node/Argp.html)
     70 * [Step-by-Step into Argp](http://nongnu.askapache.com/argpbook/step-by-step-into-argp.pdf)
     71 * [ericonr/argp-standalone](https://github.com/ericonr/argp-standalone)