7 releases (4 stable)

new 1.3.0 Jan 10, 2026
1.2.0 Jan 9, 2026
1.1.0 Aug 17, 2025
0.2.1 May 9, 2024
0.1.0 Nov 24, 2023

#750 in Concurrency

MIT license

62KB
1.5K SLoC

Retrogress provides thread-safe progress bars with a simple and limited API that can be passed between modules and functions.

This crate provides progress bars that can be passed around, borrowed, or moved between threads, with implementations for both single-threaded and multi-threaded scenarios.

use retrogress::Progress;
use retrogress::{ProgressBar, Sync};

let mut progress = ProgressBar::new(Sync::boxed());
let pb = progress.append("step 1");
progress.println(pb, "Write a line of text above the progress bar");
progress.println(pb, "Write another line");
progress.succeeded(pb);

Retrogress

Retrogress provides thread-safe progress bars with a simple and limited API that can be passed between modules and functions.

This crate is designed for projects that need to share progress bars between different sections of code. It provides implementations for both single-threaded (Sync) and multi-threaded (Parallel) scenarios, allowing progress bars to be passed around, borrowed, or moved between threads.

cargo run --example sync

Dependencies

~1.6–3.5MB
~63K SLoC