Analysis updated 2026-07-03
Show a progress bar while downloading a large file in a Go CLI tool so users can see download speed and time remaining instead of a frozen screen.
Add automatic byte-count progress tracking to any Go data copy by wrapping the reader or writer with a single pb proxy call.
Display a custom-formatted progress bar in a batch processing loop, using Go's text/template syntax to show exactly the fields you want.
| cheggaaa/pb | nikoksr/notify | google/trillian | |
|---|---|---|---|
| Stars | 3,723 | 3,721 | 3,727 |
| Language | Go | Go | Go |
| Setup difficulty | easy | easy | hard |
| Complexity | 1/5 | 2/5 | 4/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
pb is a small Go library for displaying a progress bar in the terminal. When a program is doing something that takes time, such as downloading a file, copying data, or processing a large list of items, a progress bar lets the user see how far along the work is and roughly how long it will still take. Without something like this, a long-running terminal program just sits silently, giving no indication of whether it is nearly done or stuck. To use pb, you tell it the total number of items or bytes you plan to process, call Start, then increment the counter as each item completes. When the work is done, you call Finish. The bar automatically shows the percentage complete, the current rate, and a visual bar that fills from left to right. The library also handles a specific common case: tracking progress while copying data through Go's standard io.Reader and io.Writer interfaces. Rather than counting items manually, you wrap your reader in a proxy reader provided by pb, and the bar updates automatically as bytes flow through. The display can be customized. There are a few built-in visual styles (simple, default, full), and you can write your own template using Go's standard text/template syntax. Built-in template elements include the bar itself, percentage, speed, elapsed time, and color functions for terminal text colors. The library can also display sizes as bytes, kilobytes, and so on rather than raw numbers, using either standard IEC or SI byte prefix naming. The README is brief. It covers installation via the standard Go package tool, three short usage examples, and a description of the available settings and templating options.
A small Go library that adds a progress bar to terminal programs, showing percentage complete, current speed, and estimated time remaining as your code processes items or copies data streams.
Mainly Go. The stack also includes Go.
Setup difficulty is rated easy, with roughly 5min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.