{"id":17888082,"url":"https://github.com/fireflycons/yanprogress","last_synced_at":"2025-06-15T00:03:01.851Z","repository":{"id":257813230,"uuid":"867242702","full_name":"fireflycons/yanprogress","owner":"fireflycons","description":"Yet ANother Progress Bar","archived":false,"fork":false,"pushed_at":"2024-10-07T10:17:10.000Z","size":9,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-03T02:42:22.120Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","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/fireflycons.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-10-03T17:40:48.000Z","updated_at":"2024-10-07T10:16:56.000Z","dependencies_parsed_at":"2024-12-15T22:38:15.252Z","dependency_job_id":null,"html_url":"https://github.com/fireflycons/yanprogress","commit_stats":null,"previous_names":["fireflycons/yanprogress"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/fireflycons/yanprogress","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fireflycons%2Fyanprogress","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fireflycons%2Fyanprogress/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fireflycons%2Fyanprogress/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fireflycons%2Fyanprogress/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fireflycons","download_url":"https://codeload.github.com/fireflycons/yanprogress/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fireflycons%2Fyanprogress/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259901296,"owners_count":22929219,"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":[],"created_at":"2024-10-28T13:36:30.677Z","updated_at":"2025-06-15T00:03:01.803Z","avatar_url":"https://github.com/fireflycons.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# yanprogress\n\nYet ANother Progress Bar :smile:\n\nDead simple no-frills progress bar that writes by default to stderr.\n\nThere are two types\n* Bounded - where the total number of iterations to process is known in advance. This will produce a bar output like this\n\n    ```\n    [==============\u003e               ]  50% (19.7 it/s)\n    ```\n* Unbounded - where the total number of iterations to process is not known in advance. This will produce a spinner output like this\n\n    ```\n    ⠋ (19.8 it/s)\n    ```\n\nIf the terminal is not a tty (destination is a file or redirected), then it will produce sequential output like this, without the percentage if unbounded.\n\n```\n  9% (18.0 it/s)\n 19% (19.0 it/s)\n 28% (19.3 it/s)\n 39% (19.5 it/s)\n 49% (19.6 it/s)\n ```\n\nYou may optionally add a status to say what it is doing. This can be called at any point to update the status line, in which case it looks like this\n\n```\nFrobbing the turnips\n[==============\u003e               ]  50% (19.7 it/s)\n```\n\n## Examples\n\nBounded progress bar. To use unbounded set the first argument to zero\n\n```go\nbar := NewProgressBar(100, 500*time.Millisecond)\nbar.SetStatus(\"Downloading File\")\nbar.Start()\n\n// Simulate work\nfor i := 0; i \u003c= 100; i++ {\n    time.Sleep(50 * time.Millisecond)\n    bar.Inc()\n\n    if i == 50 {\n        bar.SetStatus(\"Half way there!\")\n    }\n}\nbar.Complete()\n\n```\n\nWrite to stdout\n\n```go\nbar := NewProgressBar(100, 500*time.Millisecond, WithWriter(os.Stdout))\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffireflycons%2Fyanprogress","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffireflycons%2Fyanprogress","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffireflycons%2Fyanprogress/lists"}