{"id":13565317,"url":"https://github.com/ctongfei/progressbar","last_synced_at":"2026-01-16T15:57:22.258Z","repository":{"id":27086474,"uuid":"30553392","full_name":"ctongfei/progressbar","owner":"ctongfei","description":"Terminal-based progress bar for Java / JVM","archived":false,"fork":false,"pushed_at":"2024-11-14T20:50:26.000Z","size":3145,"stargazers_count":1117,"open_issues_count":23,"forks_count":109,"subscribers_count":18,"default_branch":"main","last_synced_at":"2025-04-23T20:59:59.602Z","etag":null,"topics":["cli","console","jvm","progressbar","terminal"],"latest_commit_sha":null,"homepage":"http://tongfei.me/progressbar/","language":"Java","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/ctongfei.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2015-02-09T19:16:21.000Z","updated_at":"2025-04-22T15:20:06.000Z","dependencies_parsed_at":"2024-06-19T04:01:49.223Z","dependency_job_id":"2e8da087-0a3b-40d9-bf98-b2b85acddafd","html_url":"https://github.com/ctongfei/progressbar","commit_stats":null,"previous_names":[],"tags_count":26,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ctongfei%2Fprogressbar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ctongfei%2Fprogressbar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ctongfei%2Fprogressbar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ctongfei%2Fprogressbar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ctongfei","download_url":"https://codeload.github.com/ctongfei/progressbar/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250514767,"owners_count":21443208,"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","jvm","progressbar","terminal"],"created_at":"2024-08-01T13:01:44.487Z","updated_at":"2026-01-16T15:57:22.251Z","avatar_url":"https://github.com/ctongfei.png","language":"Java","readme":"# progressbar \n[![Maven Central](https://maven-badges.sml.io/maven-central/me.tongfei/progressbar/badge.svg)](https://central.sonatype.com/artifact/me.tongfei/progressbar)\n\nA console progress bar for JVM with minimal runtime overhead.\n\n\u003cimg src=\"https://i.imgur.com/E4mvuWh.gif\" width=\"600\"/\u003e\n\nMenlo, \n[Fira Mono](https://github.com/mozilla/Fira), \n[Source Code Pro](https://github.com/adobe-fonts/source-code-pro),\n[Iosevka](https://github.com/be5invis/Iosevka),\n[JetBrains Mono](https://www.jetbrains.com/lp/mono/) or \n[SF Mono](https://developer.apple.com/fonts/) are recommended for optimal visual effects.\n\nFor Consolas or Andale Mono fonts, use `ProgressBarStyle.ASCII` because the box-drawing glyphs are not aligned properly in these fonts.\n\n\u003cimg src=\"https://i.gyazo.com/e01943454443f90c9499c00a6c197a41.gif\" width=\"600\"/\u003e\n\n#### Documentation\n - [Documentation](http://ctongfei.github.io/progressbar/)\n - [Javadoc](https://javadoc.io/doc/me.tongfei/progressbar/latest)\n \n\n#### Installation\n\nMaven:\n\n```xml\n  \u003cdependency\u003e\n      \u003cgroupId\u003eme.tongfei\u003c/groupId\u003e\n      \u003cartifactId\u003eprogressbar\u003c/artifactId\u003e\n      \u003cversion\u003e$VERSION\u003c/version\u003e\n  \u003c/dependency\u003e\n```\n\n#### Usage\nDeclarative usage (since `0.6.0`):\n```java\n// Looping over a collection:\nfor (T x : ProgressBar.wrap(collection, \"TaskName\")) {\n    ...\n    // Progress will be automatically monitored by a progress bar\n}\n```\n\nImperative usage (since `0.7.0` switched to Java's try-with-resource pattern):\n\n```java\n// try-with-resource block\ntry (ProgressBar pb = new ProgressBar(\"Test\", 100)) { // name, initial max\n // Use ProgressBar(\"Test\", 100, ProgressBarStyle.ASCII) if you want ASCII output style\n  for ( /* TASK TO TRACK */ ) {\n    pb.step(); // step by 1\n    pb.stepBy(n); // step by n\n    ...\n    pb.stepTo(n); // step directly to n\n    ...\n    pb.maxHint(n);\n    // reset the max of this progress bar as n. This may be useful when the program\n    // gets new information about the current progress.\n    // Can set n to be less than zero: this means that this progress bar would become\n    // indefinite: the max would be unknown.\n    ...\n    pb.setExtraMessage(\"Reading...\"); // Set extra message to display at the end of the bar\n  }\n} // progress bar stops automatically after completion of try-with-resource block\n```\n\n**NEW** in `0.9.0`: You can now use multiple progress bars for parallel jobs:\n```java\ntry (ProgressBar pb1 = new ProgressBar(\"Job1\", max1); \n     ProgressBar pb2 = new ProgressBar(\"Job2\", max2)) { ... }\n```\n\n##### Kotlin extensions\nKotlin DSL-like builders are available at [reimersoftware/progressbar-ktx](https://github.com/reimersoftware/progressbar-ktx).\n\n#### Changelog\n[CHANGELOG](https://github.com/ctongfei/progressbar/blob/master/CHANGELOG.md)\n","funding_links":[],"categories":["Java","Java ☕"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fctongfei%2Fprogressbar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fctongfei%2Fprogressbar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fctongfei%2Fprogressbar/lists"}