{"id":18759800,"url":"https://github.com/paulanerus/argparser","last_synced_at":"2025-12-03T08:30:31.457Z","repository":{"id":250695595,"uuid":"764242461","full_name":"Paulanerus/ArgParser","owner":"Paulanerus","description":"ArgParser - Simple, single header-only C++17 library for command parsing","archived":false,"fork":false,"pushed_at":"2024-10-22T08:24:21.000Z","size":82,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-20T17:15:35.033Z","etag":null,"topics":["argument-parser","argument-parsing","cli","cli-args","command-line-parser","commands","cpp","cpp17","cpp20","header-only","header-only-library","parser","parsing-library"],"latest_commit_sha":null,"homepage":"https://paulee.dev/argparser","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Paulanerus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-02-27T18:24:59.000Z","updated_at":"2024-10-16T17:01:15.000Z","dependencies_parsed_at":"2024-08-05T07:48:12.522Z","dependency_job_id":"490f3179-4d9b-4c26-86ac-b0c3e82d9609","html_url":"https://github.com/Paulanerus/ArgParser","commit_stats":{"total_commits":95,"total_committers":1,"mean_commits":95.0,"dds":0.0,"last_synced_commit":"cbf8234ec3bf3e3030cf2688a694ae5ede7cdb12"},"previous_names":["paulanerus/argparser"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Paulanerus/ArgParser","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Paulanerus%2FArgParser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Paulanerus%2FArgParser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Paulanerus%2FArgParser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Paulanerus%2FArgParser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Paulanerus","download_url":"https://codeload.github.com/Paulanerus/ArgParser/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Paulanerus%2FArgParser/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27472246,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-03T02:00:06.367Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["argument-parser","argument-parsing","cli","cli-args","command-line-parser","commands","cpp","cpp17","cpp20","header-only","header-only-library","parser","parsing-library"],"created_at":"2024-11-07T18:07:55.665Z","updated_at":"2025-12-03T08:30:31.167Z","avatar_url":"https://github.com/Paulanerus.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ArgParser\n\nArgParser is a simple, single header-only C++17 library to parse command like input. Similar in functionality to tools like [cargo](https://doc.rust-lang.org/stable/cargo/), the Rust package manager. It started as a testing project and after some development I thought that someone could use this as well.\n\nThis library was tested on Windows (MSCV) and GNU/Linux (GCC, Clang), with additional checking on GNU/Linux with [Valgrind](https://valgrind.org/)\n\n## Examples\n\nExample 1:\n```c++\n#include \"arg_parser.hpp\"\n\nint main(int argc, char* argv[])\n{\n    psap::ArgParser parser{\n        psap::ParserConf{\"project_name\", 4, true, true, psap::ValueStyle::Both, psap::UnknownOptionPolicy::ReportRemove}};\n\n    auto HELP_ACTION = \n        [](const psap::ArgParser \u0026parser, const psap::Command \u0026cmd)\n        {\n            parser(parser[0]); // Print info text of remaining args\n        }\n\n    parser.command(\"help\", \"h\")\n        .help(\"Shows help.\")\n        .action(HELP_ACTION);\n\n    //More commands to come\n\n    parser.parse(argv, argc);\n}\n```\n\nOutput:\n```\nUsage: project_name [Command] [Options]\n\nCommands:\n    help, h    Shows help.\n\nSee 'project_name help \u003ccommand\u003e' for more information on a specific command.\n```\n\nExample 2:\n```c++\n    psap::ArgParser parser{\n        psap::ParserConf{\"project_name\", 4, true, true, psap::ValueStyle::Both, psap::UnknownOptionPolicy::ReportRemove}};\n\n    auto RUN_ACTION = \n        [](const psap::ArgParser \u0026parser, const psap::Command \u0026cmd)\n        {\n            //Run action...\n        }\n\n    parser.command(\"run\", \"r\")\n        .help(\"Runs something.\")\n        .option(psap::make_value(\"--target\", \"-t\", \"Select a Target.\"))\n        .option(psap::make_flag(\"--debug\", \"-d\", \"Runs in debug.\"))\n        .action(RUN_ACTION);\n\n    //More commands to come\n\n    parser.parse(argv, argc);\n```\n\n## Documentation\n\nDocumentation can be found in the [wiki](https://github.com/Paulanerus/ArgParser/wiki) pages.\n\n## Dependencies\n\nArgParser has no other dependencies.\n\n## Support\nIf you encounter any issues or have any questions about this project, don't hesitate to reach out to me. You can [open an issue](https://github.com/Paulanerus/ArgParser/issues) on GitHub.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaulanerus%2Fargparser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpaulanerus%2Fargparser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaulanerus%2Fargparser/lists"}