A simple, thread-safe progress bar library for Go applications with support for I/O operations and customization.
Progressbar is a lightweight, thread-safe progress bar library for Go applications. It provides a straightforward way to visualize progress in command-line tools, downloads, and other long-running tasks, working across all operating systems without relying on multi-line outputs.
Go developers building command-line applications, download managers, or any software requiring progress visualization for long-running operations in terminal environments.
Developers choose Progressbar for its thread-safe design, OS agnosticism, and simplicity, with unique features like automatic spinner conversion for unknown lengths and io.Writer integration for tracking bytes written without extra code.
A really basic thread-safe progress bar for Golang 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.
Safe for concurrent use in multi-threaded applications, ensuring reliability in parallel processing scenarios, as highlighted in the thread-safe feature and CI testing.
Implements io.Writer to automatically track bytes written, simplifying progress tracking for downloads and streams with minimal code, demonstrated in the I/O operations example.
Converts to a spinner when total length is unknown, providing continuous feedback for indeterminate processes like streaming data, shown in the download-unknown example.
Offers many options to change colors, width, descriptions, and themes, with detailed examples in the customization section and godocs.
Explicitly avoids multi-line outputs to ensure OS compatibility, limiting advanced terminal UI features and making it unsuitable for complex animations or multiple concurrent bars.
Color customization requires installing additional libraries like 'github.com/k0kubun/go-ansi', adding setup complexity and potential dependency management issues.
Focuses on core functionality, lacking advanced features such as progress bar pausing, resuming, or integration with other UI frameworks, which might be needed for sophisticated CLI tools.