{"id":13477925,"url":"https://github.com/ad4mx/spinoff","last_synced_at":"2025-12-12T16:47:38.054Z","repository":{"id":45839119,"uuid":"514360490","full_name":"ad4mx/spinoff","owner":"ad4mx","description":"💫 Easy to use, robust Rust library for displaying spinners in the terminal","archived":false,"fork":false,"pushed_at":"2025-01-16T13:44:39.000Z","size":1437,"stargazers_count":575,"open_issues_count":2,"forks_count":10,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-10-20T02:16:39.641Z","etag":null,"topics":["cli","command-line","command-line-tool","spinner","terminal"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/ad4mx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":".github/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":"2022-07-15T18:00:26.000Z","updated_at":"2025-10-18T09:10:30.000Z","dependencies_parsed_at":"2023-12-15T21:57:18.839Z","dependency_job_id":"ee0e9e77-f79c-45b5-8eda-f43d74ea993c","html_url":"https://github.com/ad4mx/spinoff","commit_stats":{"total_commits":66,"total_committers":4,"mean_commits":16.5,"dds":"0.36363636363636365","last_synced_commit":"13f6d1e02e026b16b1a78c5c4abdade2b50bee3b"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/ad4mx/spinoff","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ad4mx%2Fspinoff","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ad4mx%2Fspinoff/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ad4mx%2Fspinoff/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ad4mx%2Fspinoff/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ad4mx","download_url":"https://codeload.github.com/ad4mx/spinoff/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ad4mx%2Fspinoff/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27686464,"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-12T02:00:06.775Z","response_time":129,"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":["cli","command-line","command-line-tool","spinner","terminal"],"created_at":"2024-07-31T16:01:49.937Z","updated_at":"2025-12-12T16:47:38.034Z","avatar_url":"https://github.com/ad4mx.png","language":"Rust","readme":"# spinoff\n\u003e an easy to use, robust library for displaying spinners in the terminal\n\n[![Version](https://img.shields.io/crates/v/spinoff.svg)](https://crates.io/crates/spinoff) [![Downloads](https://img.shields.io/crates/d/spinoff)](https://crates.io/crates/spinoff) [![Docs](https://img.shields.io/docsrs/spinoff)](https://docs.rs/spinoff/latest/spinoff) [![License](https://img.shields.io/crates/l/spinoff)](https://crates.io/crates/spinoff) ![Actions](https://img.shields.io/github/actions/workflow/status/ad4mx/spinoff/rust.yml?branch=main)\n\n\n![](assets/index.gif)\n## 🔨 Install\nAdd as a dependency to your `Cargo.toml`:\n\n```toml\n[dependencies]\nspinoff = \"0.8.0\"\n```\t\n\n## ⚡ Usage\n\n```rust\nuse spinoff::{Spinner, spinners, Color};\nuse std::thread::sleep;\nuse std::time::Duration;\n\nlet mut spinner = Spinner::new(spinners::Dots, \"Loading...\", Color::Blue); \nsleep(Duration::from_secs(3));\nspinner.success(\"Done!\");\n```\n\n### Update a spinner\n\n```rust\nuse spinoff::{Spinner, spinners, Color};\nuse std::thread::sleep;\nuse std::time::Duration;\n\nlet mut spinner = Spinner::new(spinners::Aesthetic, \"Loading...\", Color::Red); \nsleep(Duration::from_secs(3));\nspinner.update(spinners::Dots2, \"Retrying...\", None);\nsleep(Duration::from_secs(3));\nspinner.stop()\n```\n\n### Specify an output stream\n\n```rust\nuse spinoff::{Spinner, spinners, Color, Streams};\nuse std::thread::sleep;\nuse std::time::Duration;\n\nlet mut spinner = Spinner::new_with_stream(spinners::Line, \"Loading...\", Color::Yellow, Streams::Stderr);\nsleep(Duration::from_secs(3));\nspinner.stop_and_persist(\"📜\", \"Task done.\");\n```\n\n## 💫 Spinners\n\n`spinoff` includes over 80+ spinner variants out of the box. \nAll spinner variants are treated as features that can be enabled or disabled. By default, all of them are enabled for ease of use.\nTo disable/enable variants, you will have to edit your `cargo.toml` file:\n\n```toml\n[dependencies]\nspinoff = { version = \"0.8.0\", features = [\"dots\", \"arc\", \"line\"] }\n```\n\nAny suggestions for new spinner variants are welcome. \n\n### Creating your own spinner\nYou can create your own spinner using the `spinner!` macro:\n\n```rust\nuse spinoff::*;\nuse std::thread::sleep;\nuse std::time::Duration;\n\nlet frames = spinner!([\"\u003e\", \"\u003e\u003e\", \"\u003e\u003e\u003e\"], 100);\nlet mut sp = Spinner::new(frames, \"Hello World!\", None);\nsleep(Duration::from_millis(800));\nsp.stop();\n```\n\n### Multiline messages\n`spinoff` doesn't support spinners with multiline text out of the box. If you want to use it in your project, please look at [#27](https://github.com/ad4mx/spinoff/issues/27).\n\n## ❗Note for Windows Users\nFor colors to work properly, you need to add a few extra lines to your code: \n```rust\nuse colored::control\ncontrol::set_virtual_terminal(true).unwrap();\n```\n\n## 📖 Documentation\n\n* All relevant documentation can be found on the [Docs.rs page](https://docs.rs/spinoff/latest/spinoff/).\n* If you want to see all the available `spinner` options, refer to [the `spinner` module](https://docs.rs/spinoff/0.7.0/spinoff/spinners/index.html).\n\n## ⚙ Examples\n\n```bash\ncargo run --example simple\n```\n```bash\ncargo run --example stream\n```\n```bash\ncargo run --example stop_and_persist\n```\nOther examples can be found in the [documentation](https://docs.rs/spinoff/latest/spinoff/).\n## 🚧 Contributing\n\nAny contributions to this crate are highly appreciated. If you have any ideas/suggestions/bug fixes, please open an [issue](https://github.com/ad4mx/spinoff/issues) or a [pull request](https://github.com/ad4mx/spinoff/pulls).\nIf you like the project, [star this project on GitHub.](https://github.com/ad4mx/spinoff)\n\n## 📑 License\n\nThis crate is licensed under the [MIT license](LICENSE).\n","funding_links":[],"categories":["Rust"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fad4mx%2Fspinoff","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fad4mx%2Fspinoff","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fad4mx%2Fspinoff/lists"}