Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Rust
  3. pb

pb

MITRustv1.0.3

A Rust library for displaying customizable progress bars in terminal applications.

GitHubGitHub
598 stars58 forks0 contributors

What is pb?

pbr is a Rust library for creating and managing progress bars in terminal applications. It helps developers visualize the progress of tasks like file downloads, data processing, or batch operations, improving user experience in command-line tools.

Target Audience

Rust developers building command-line applications or tools that require progress indication for long-running processes.

Value Proposition

It offers a lightweight, cross-platform solution with features like multi-bar support and customizable formatting, making it a versatile choice over manual progress implementations.

Overview

Console progress bar for Rust

Use Cases

Best For

  • Adding progress indicators to CLI tools in Rust
  • Visualizing file copy or download progress
  • Displaying multiple concurrent task progress
  • Customizing terminal progress bar appearance
  • Integrating progress feedback in batch processing scripts
  • Building cross-platform command-line utilities with progress tracking

Not Ideal For

  • Applications requiring graphical user interface (GUI) progress bars, such as desktop or web apps
  • Projects that need non-blocking progress updates without using threads, like lightweight async tasks
  • Environments where terminal access is restricted or unavailable, such as embedded systems or headless servers without console output

Pros & Cons

Pros

Cross-Platform Reliability

Consistently works on macOS, Linux, and Windows, as stated in the README, ensuring broad compatibility for CLI tools.

Flexible Formatting

Allows custom bar characters and styles via methods like pb.format(), demonstrated in the simple example with custom symbols.

Concurrent Progress Display

Supports multiple progress bars simultaneously through the MultiBar API, shown in the example with separate threads for concurrent tasks.

Seamless I/O Integration

Broadcast writing integrates with file operations to show progress during copies, as seen in the file copying example using std::io.

Cons

Thread-Based Concurrency

Multi-bar support requires spawning threads, which can complicate error handling and increase resource usage, as evident in the MultiBar example.

Blocking Operations

Methods like mb.listen() block until all bars finish, forcing careful concurrency management and potentially hindering application responsiveness.

Limited Advanced Features

Lacks built-in support for estimated time remaining or transfer speed metrics, requiring manual implementation for such common needs.

Frequently Asked Questions

Quick Stats

Stars598
Forks58
Contributors0
Open Issues17
Last commit2 years ago
CreatedSince 2015

Tags

#pbr#terminal#io#progressbar#console#cli#cross-platform#rust#progress-bar#utilities

Built With

R
Rust

Included in

Rust56.6k
Auto-fetched 2 hours ago

Related Projects

ratatui-org/ratatuiratatui-org/ratatui

A Rust crate for cooking up terminal user interfaces (TUIs) 👨‍🍳🐀 https://ratatui.rs

Stars21,864
Forks719
Last commit2 days ago
clap-rsclap-rs

A full featured, fast Command Line Argument Parser for Rust

Stars16,580
Forks1,212
Last commit2 days ago
indicatifindicatif

A command line progress reporting library for Rust

Stars5,189
Forks282
Last commit3 days ago
CursiveCursive

A Text User Interface library for the Rust programming language

Stars4,833
Forks267
Last commit9 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub