A Go library for rendering multiple customizable progress bars in terminal applications.
mpb is a Go library for rendering progress bars in terminal applications. It enables developers to create dynamic, visually informative progress indicators for tasks like file downloads, data processing, or batch operations directly in the command-line interface.
Go developers building command-line tools or applications that require progress tracking for operations such as file handling, data processing, or batch jobs in terminal environments.
Developers choose mpb for its flexibility in rendering multiple, customizable progress bars simultaneously with features like dynamic total adjustment and synchronized decorators, offering a declarative API that balances performance and aesthetic control for terminal UIs.
multi progress bar for Go cli applications
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports rendering multiple progress bars simultaneously, enabling parallel task tracking as shown in the multiBars example with goroutines and sync.WaitGroup.
Allows adjusting total values or adding/removing bars during runtime, demonstrated in dynTotal and queueBar examples for flexible progress updates.
Includes built-in decorators for elapsed time, EWMA-based ETA, percentage, and bytes counter, with synchronization options for consistent alignment across bars.
Provides a declarative way to define bar styles and decorators, making it easy to create aesthetically pleasing indicators, as seen in the singleBar example with custom styles like '╢▌▌░╟'.
Only usable within Go applications, limiting its applicability for projects using other programming languages or multi-language ecosystems.
Requires familiarity with Go's concurrency patterns and decorator API, which can be complex for developers new to such paradigms, as evidenced by the need for EwmaIncrement calls in examples.
Relies on third-party packages like github.com/VividCortex/ewma for ETA calculations, adding external dependencies that might increase project complexity or maintenance overhead.