Crate progrs [] [src]

progrs: A small library for displaying progress in terminal programs

There are a number of libraries out there that can be used for progress display, but in the author's opinion these libraries do it almost right - either they eat up too much screen real estate (by not sticking to one line per thing that should use progress) or they try to align stuff left and right.

In the author's humble opinion, the best example of just the right amount of information vs screen real-estate is in the Git progress output (when cloning, pulling, etc). It uses one line per thing, and may display both percentage complete (in cases where it's known) and even throughput (for network transfer).

This library mimics the Git way of showing progress.


let (mut n, nobjects) = (0, 218676);
let mut p = progrs::start("Collecting objects", Some(nobjects));
while n < nobjects {
    n += collect_more_objects();

which will produce the output:

Collecting objects: 100% (218676/218676), done.


  • Add throughput display to Progress





Start a new progress "bar"