{"id":28237248,"url":"https://github.com/just-do-halee/argone","last_synced_at":"2026-03-10T14:30:51.608Z","repository":{"id":57493574,"uuid":"433620207","full_name":"just-do-halee/argone","owner":"just-do-halee","description":"Most intuitive global cli maker. *(lazy_static + config-rs + clap)","archived":false,"fork":false,"pushed_at":"2022-06-19T16:00:58.000Z","size":19,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-06T11:35:24.250Z","etag":null,"topics":["argument","arguments-parser","clap","cli","command-line-interface","config","config-rs","lazy-static","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/just-do-halee.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE_APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":["just-do-halee"]}},"created_at":"2021-11-30T23:34:41.000Z","updated_at":"2022-12-09T21:03:02.000Z","dependencies_parsed_at":"2022-08-28T15:13:55.911Z","dependency_job_id":null,"html_url":"https://github.com/just-do-halee/argone","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/just-do-halee/argone","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/just-do-halee%2Fargone","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/just-do-halee%2Fargone/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/just-do-halee%2Fargone/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/just-do-halee%2Fargone/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/just-do-halee","download_url":"https://codeload.github.com/just-do-halee/argone/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/just-do-halee%2Fargone/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30337170,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T12:41:07.687Z","status":"ssl_error","status_checked_at":"2026-03-10T12:41:06.728Z","response_time":106,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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","arguments-parser","clap","cli","command-line-interface","config","config-rs","lazy-static","rust"],"created_at":"2025-05-19T00:17:54.964Z","updated_at":"2026-03-10T14:30:51.563Z","avatar_url":"https://github.com/just-do-halee.png","language":"Rust","funding_links":["https://github.com/sponsors/just-do-halee"],"categories":[],"sub_categories":[],"readme":"## ***`argone`***\n\n---\n\nMost intuitive global cli maker. *(lazy_static + config-rs + clap)\n\n\n[![CI][ci-badge]][ci-url]\n[![Crates.io][crates-badge]][crates-url]\n[![Licensed][license-badge]][license-url]\n[![Twitter][twitter-badge]][twitter-url]\n\n[ci-badge]: https://github.com/just-do-halee/argone/actions/workflows/rust.yml/badge.svg\n[crates-badge]: https://img.shields.io/crates/v/argone.svg?labelColor=383636\n[license-badge]: https://img.shields.io/crates/l/argone?labelColor=383636\n[twitter-badge]: https://img.shields.io/twitter/follow/do_halee?style=flat\u0026logo=twitter\u0026color=4a4646\u0026labelColor=333131\u0026label=just-do-halee\n\n[ci-url]: https://github.com/just-do-halee/argone/actions\n[twitter-url]: https://twitter.com/do_halee\n[crates-url]: https://crates.io/crates/argone\n[license-url]: https://github.com/just-do-halee/argone\n| [Examples](https://github.com/just-do-halee/argone/tree/main/examples) | [Docs](https://docs.rs/argone) | [Latest Note](https://github.com/just-do-halee/argone/blob/main/CHANGELOG.md) | \n\n```toml\n[dependencies]\nargone = \"0.5\"\n```\n\n---\n\n## *Phases*\n\n1. Parsing `clap`.\n2. If clap-argument is `None`\u003cbr\u003eand the argument has `[Config]` mark\u003cbr\u003ethen extract data from `Config(file or env)`.\n3. When the data is extracted and that was empty,\u003cbr\u003eeventually set Default(=) value.\n\n---\n\n# `Example`\n##### * ***basics***\n```rust\nuse argone::{prelude::*, *};\n\nARGONE! {\n\n    version = \"0.1\"\n    author = \"just-do-halee \u003cjust.do.halee@gmail.com\u003e\"\n    about = \"this is our application\"\n\n    Config {\n        // file's extension could be\n        // ini | json | json5 | yaml | toml | ron\n        file = \"examples/Config\"\n        // arg's env-prefix ex:) APP_...\n        prefix = \"APP\"\n    }\n\n    Args {\n\n        /// This is just one required argument.\n        /// and three slashes will be an 'about' for clap cli.\n        name: String\n\n        /// This argument is connected to Config(file or env).\n        /// Template is\n        /// [Config] $name: Option\u003c$type\u003e = Some($default_value) or\n        /// [Config] $name: Vec\u003c$type\u003e = vec![$default_values]\n        /// and this works in non-required argument.\n        [Config] age: Option\u003cu8\u003e = Some(12),\n        [Config] job: Vec\u003cString\u003e\n\n        // And all arugments are working on clap_derive format.\n\n        /// Exactly same with clap_derive.\n        (short, long)\n        parents: Vec\u003cString\u003e\n\n        /// But (default_value = \"..\") doesn't work to\n        /// the config arguments. instead, this would work.\n        (short, long, name = \"WEIGHT\")\n        [Config] weight: Option\u003cu8\u003e = Some(50)\n\n        /// In normal arguments, default_value will work.\n        (short, long, default_value = \"1\")\n        verbose: u8\n\n    }\n\n    commands = Sub\n\n}\n\nCOMMANDS! {\n    Sub {\n\n        /// The subcommand\n        /// but subcommands do not have config arguments.\n        First {\n            version = \"1.0\"\n            author = \"just-do-halee \u003cjust.do.halee@gmail.com\u003e\"\n            Args {\n                /// This area is also same.\n                test: String\n            }\n        }\n\n        Second {\n            about = \"The second subcommand\"\n            Args {\n                test: u8\n            }\n        }\n\n    }\n}\n\nfn main() {\n    println!(\"{:#?}\", *ARGS);\n\n    if ARGS.name == \"test\" {\n        println!(\"name is test.\");\n    }\n\n    if ARGS.age.unwrap() != 12 {\n        println!(\"age is not matching default 12.\");\n    }\n\n    for job in \u0026ARGS.job {\n        println!(\"job: {}\", job);\n    }\n\n    for parents in \u0026ARGS.parents {\n        println!(\"parent: {}\", parents);\n    }\n\n    println!(\n        \"weight is {}\\nverbose is {}\",\n        ARGS.weight.unwrap(),\n        ARGS.verbose\n    );\n\n    if let Some(sub) = \u0026ARGS.commands {\n        match sub {\n            Sub::First { test } =\u003e println!(\"first command: {}\", test),\n            Sub::Second { test } =\u003e println!(\"second command: {}\", test),\n        }\n    } else {\n        println!(\"none subcommands\");\n    }\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjust-do-halee%2Fargone","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjust-do-halee%2Fargone","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjust-do-halee%2Fargone/lists"}