#progress-bar #cli-progress-bar #spinner #cli #throbber

throbberous

An async-native CLI progress bar and throbber (spinner) library for Rust

5 releases

0.1.4 Jul 24, 2025
0.1.3 Jul 24, 2025
0.1.2 Jul 23, 2025
0.1.1 Jul 23, 2025
0.1.0 Jul 23, 2025

#611 in Command-line interface

Download history 3/week @ 2025-09-26 2/week @ 2025-10-03 41/week @ 2025-11-21 21/week @ 2025-11-28

108 downloads per month
Used in supabase-plus

MIT/Apache

22KB
440 lines

throbberous

An async-native CLI progress bar and throbber (spinner) library for Rust.

Example

use throbberous::{Throbber, Bar};
use tokio_test::block_on;

block_on(async {
    // Regular progress bar
    let bar = Bar::new(100);
    for _i in 0..100 {
        bar.inc(1).await;
        tokio::time::sleep(tokio::time::Duration::from_millis(50)).await;
    }
    bar.finish().await;

    // Indeterminate progress bar
    let loading = Bar::indeterminate("Working...");
    tokio::time::sleep(tokio::time::Duration::from_secs(3)).await;
    loading.finish().await;

    // Spinner
    let throbber = Throbber::new();
    throbber.start().await;
    tokio::time::sleep(tokio::time::Duration::from_secs(2)).await;
    throbber.stop().await;
});

throbberous

An async-native CLI progress bar and throbber (spinner) library for Rust.

Features

  • Async-friendly progress bars and throbbers
  • Customizable colors and animation speeds
  • Easy to integrate into any Rust async project
  • Minimal dependencies (tokio, crossterm)

Usage

Add this to your Cargo.toml:

[dependencies]
throbberous = "0.1.4"
tokio = { version = "1", features = ["full"] }
crossterm = "0.29"

Dependencies

~4.5–9.5MB
~195K SLoC