Termprogress - Terminal progress bars
Simple and customiseable terminal progress bars for Rust.
Features
- Customiseable, has a traits system to allow for passing any type of progress bar around
- Optionally prevents long titles from overflowing the terminal by using the terminal_size crate
- Interfaces for easily manipulating bar
How it looks
The bar at 50, 75, and 100%:
[========================= ]: 50.00% some title
[===================================== ]: 75.00% some other title
[==================================================]: 100.00% some other title
The spinner in 4 stages:
Some title /
Some title -
Some title \
Some title |
Getting started.
To quickly use the default bar and spinner, you can include the prelude:
use *;
let mut progress = default; // Create a new progress bar
progress.set_title;
/// *does work*
progress.set_progress;
progress.set_progress;
progress.println;
progress.set_progress;
progress.println;
progress.set_progress;
/// completes
progress.complete;
Spinner:
use *;
let mut spinner = default; //Create a new spinner
/// *does work*
spinner.bump;
spinner.bump;
progress.println;
spinner.bump;
spinner.bump;
/// completes
progress.complete_with;
Default features
By default, the size feature is enabled, which requires the dependency terminal_size.
Without this, Bar will not attempt to get the terminal's size to prevent overflows. You can disable it with default-features=false.
Traits
The library comes with traits for progress bars: ProgressBar, and Spinner.
The default implementations for these are Bar and Spin, but you can provide your own implementations too for more customisability.
There is also Silent, which implements both ProgressBar and Spinner, and does nothing, to allow for easily turning off or on progress displays depending on config.
does_work;
does_work;
if NOPROGRESS else
License
GPL'd with love <3