{"id":25015359,"url":"https://github.com/arteiii/zenity","last_synced_at":"2025-04-09T19:16:44.300Z","repository":{"id":229239504,"uuid":"776110716","full_name":"Arteiii/zenity","owner":"Arteiii","description":"Rust CLIs with spinner animations, progress bars, and multiline support, plus user input validation","archived":false,"fork":false,"pushed_at":"2024-12-02T13:12:35.000Z","size":505,"stargazers_count":60,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-09T19:16:33.633Z","etag":null,"topics":["cli","console","progressbar","rust","spinner","terminal"],"latest_commit_sha":null,"homepage":"https://crates.io/crates/zenity","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Arteiii.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"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-03-22T17:47:15.000Z","updated_at":"2025-03-09T11:42:35.000Z","dependencies_parsed_at":"2024-03-22T23:42:50.293Z","dependency_job_id":"c8ab99d0-02d6-4aef-8612-58e34cd0581d","html_url":"https://github.com/Arteiii/zenity","commit_stats":null,"previous_names":["arteiii/animations_rs","arteiii/zenity"],"tags_count":29,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Arteiii%2Fzenity","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Arteiii%2Fzenity/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Arteiii%2Fzenity/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Arteiii%2Fzenity/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Arteiii","download_url":"https://codeload.github.com/Arteiii/zenity/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248094988,"owners_count":21046770,"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","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":["cli","console","progressbar","rust","spinner","terminal"],"created_at":"2025-02-05T08:19:58.862Z","updated_at":"2025-04-09T19:16:44.269Z","avatar_url":"https://github.com/Arteiii.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!--suppress HtmlDeprecatedAttribute --\u003e\r\n\u003cdiv align=\"center\"\u003e\r\n  \u003cimg src=\"images/ZENITY.svg\" alt=\"Zenity svg logo\" width=\"400\" \u003e\r\n\u003cp\u003eYet Another Spinner Lib\u003c/p\u003e\r\n\u003cp style=\"margin-top: -10px;\"\u003eUpgrade your Rust CLIs with 100+ spinner animations, progress bars, and multiline support, plus user input validation, logging, and automatic requirement checks\u003c/p\u003e\r\n  \u003ca href=\"https://github.com/Arteiii/zenity/actions/workflows/publish_crate.yml\"\u003e\r\n    \u003cimg src=\"https://github.com/Arteiii/zenity/actions/workflows/publish_crate.yml/badge.svg\" alt=\"Publish to Crates\"\u003e\r\n  \u003c/a\u003e\r\n  \u003ca href=\"https://github.com/Arteiii/zenity/actions/workflows/release_examples.yml\"\u003e\r\n    \u003cimg src=\"https://github.com/Arteiii/zenity/actions/workflows/release_examples.yml/badge.svg\" alt=\"Compile Rust\"\u003e\r\n  \u003c/a\u003e\r\n  \u003cimg src=\"https://img.shields.io/crates/v/zenity\" alt=\"Crates.io Version\"\u003e\r\n  \u003cimg src=\"https://img.shields.io/docsrs/zenity\" alt=\"docs.rs\"\u003e\r\n  \u003cbr\u003e\r\n  \u003ca href=\"https://www.codefactor.io/repository/github/arteiii/zenity\"\u003e\r\n    \u003cimg src=\"https://www.codefactor.io/repository/github/arteiii/zenity/badge\" alt=\"CodeFactor\"\u003e\r\n  \u003c/a\u003e\r\n  \u003ca href=\"https://codecov.io/gh/Arteiii/zenity\" \u003e \r\n    \u003cimg src=\"https://codecov.io/gh/Arteiii/zenity/graph/badge.svg?token=CHEG2ZD0LW\" alt=\"codecov badge\"/\u003e \r\n  \u003c/a\u003e\r\n  \u003cbr\u003e\r\n  \u003cbr\u003e\r\n\u003c/div\u003e\r\n\r\n## Table of Contents\r\n\r\n- [Overview](#overview)\r\n- [How to Use?](#how-to-use)\r\n- [Documentation](#documentation)\r\n- [Examples](#examples)\r\n- [Contributing](#contributing)\r\n- [Preview](#preview)\r\n- [Disclaimer](#disclaimer)\r\n- [Credits](#credits)\r\n- [License](#license)\r\n\r\n\r\n## Overview\r\nDo you often find yourself gazing into the void of your terminal,  \r\nwondering if your computer has decided to take a coffee break without notifying you?\r\n\r\n100+ predefined animations\r\n\r\n- [Spinner](https://docs.rs/zenity/latest/zenity/spinner/frames/struct.Frames.html)\r\n- [ProgressBar](https://docs.rs/zenity/latest/zenity/progress/frames/struct.Frames.html)\r\n\r\n## How to Use?\r\n\r\nIt's as easy as pie (or maybe even easier, depending on your pie-making skills)!  \r\nFollow these steps:\r\n\r\n````shell\r\ncargo add zenity\r\n````\r\n\r\n```rust\r\n// example/basic.rs\r\n\r\nuse std::thread::sleep;\r\nuse std::time::Duration;\r\nuse zenity::spinner::MultiSpinner;\r\n\r\nfn main() {\r\n    // create a LoadingAnimation instance using one of the predefined animations\r\n    let spinner = MultiSpinner::default();\r\n    sleep(Duration::from_secs(5));\r\n\r\n    // optional:\r\n    // set the text to \"Loading...\"\r\n    spinner.set_text(\u0026spinner.get_last(), \"  Loading...\".to_string());\r\n\r\n    sleep(Duration::from_secs(500));\r\n    // `loading_animation` will run out of scope now and get dropped,\r\n    // thus the animation will stop and remove itself from the console\r\n}\r\n```\r\n\r\ncheck out the examples for more\r\n\r\n\u003e [!NOTE]\r\n\u003e the lib already includes checks for `--color` following the conventions\r\n  by:\r\n  [Rain's Rust CLI recommendations](https://rust-cli-recommendations.sunshowers.io/colors.html#general-recommendations)\r\n\r\n## Documentation\r\n\r\nDocumentation\r\nYou can access the general documentation for the latest crate online\r\nat [docs.rs](https://docs.rs/zenity/latest/zenity/).  \r\nFor more detailed information, navigate to the [modules section](https://docs.rs/zenity/latest/zenity/#modules).\r\n\r\nAlternatively, you can view the documentation locally by running the following command:\r\n\r\n```shell\r\ncargo doc --open -p zenity\r\n```\r\n\r\nThe styles provided are reexports of crossterm,\r\nwhich you can find [here](https://docs.rs/crossterm/latest/crossterm/style/index.html).\r\n\r\n### Examples\r\n\r\nFor a list of examples you can run, execute the following command:\r\n\r\n```shell\r\ncargo run --example\r\n```\r\n\r\n## Contributing\r\n\r\nContributions, bug reports, feature requests, and suggestions are all welcome!\r\n\r\nIf you encounter any issues or have ideas for improvements, please don't hesitate to open\r\nan [issue on GitHub](https://github.com/Arteiii/zenity/issues/new).  \r\n[Pull requests](https://github.com/Arteiii/zenity/pulls) are also highly appreciated.  \r\nIf you find this project helpful or enjoyable, consider giving it a star on [GitHub](https://github.com/Arteiii/zenity).\r\n\r\nThank you for your interest and contributions!\r\n\r\n## Preview\r\n\r\n![progress bar](images/rustrover64_WupAJU44Lu.gif)\r\n\r\n![menu input preview](images/rustrover64_Qgn5icero6.gif)\r\n\r\n![multiline preview](images/rustrover64_4bzlv2mWxK.gif)\r\n\r\n## Disclaimer\r\n\r\nNow, we won't promise you that cli_loading_magic will solve all your problems.  \r\nWe can't guarantee it won't crash your terminal or cause your computer to sprout legs and walk away in protest.\r\n\r\nBut hey, life's an adventure, right?\r\n\r\nEmbrace the chaos, enjoy the ride, and remember:  \r\nif all else fails, there's always **Ctrl+C.**\r\n\r\n## Credits\r\n\r\nThis project wouldn't have been possible without the amazing work of the following projects:\r\n\r\n- [Crossterm](https://github.com/crossterm-rs/crossterm)\r\n- [supports_color](https://docs.rs/supports-color/latest/supports_color/)\r\n\r\n### Sponsors \r\n\r\nThe project was sponsored by JetBrains, which provided the open-source software licenses.\r\n\r\n\u003ca href=\"https://www.jetbrains.com/\"\u003e\r\n  \u003cimg src=\"https://resources.jetbrains.com/storage/products/company/brand/logos/jetbrains.png\" width=\"500\" alt=\"JetBrains\"\u003e\r\n\u003c/a\u003e\r\n\r\n## License\r\n\r\nThis project is licensed under the **DWFYW** License.\r\n\r\nFor more information, see the [LICENSE](LICENSE.md) file.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farteiii%2Fzenity","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farteiii%2Fzenity","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farteiii%2Fzenity/lists"}