15 unstable releases (5 breaking)

0.6.0 Oct 19, 2023
0.5.1 Jul 27, 2023
0.4.4 Jan 30, 2023
0.4.3 Dec 27, 2022
0.3.1 Feb 25, 2022

#116 in Command-line interface

Download history 1273/week @ 2023-12-04 1518/week @ 2023-12-11 1304/week @ 2023-12-18 177/week @ 2023-12-25 904/week @ 2024-01-01 1663/week @ 2024-01-08 2863/week @ 2024-01-15 3649/week @ 2024-01-22 3162/week @ 2024-01-29 3104/week @ 2024-02-05 2591/week @ 2024-02-12 2758/week @ 2024-02-19 4446/week @ 2024-02-26 6545/week @ 2024-03-04 3936/week @ 2024-03-11 5065/week @ 2024-03-18

20,067 downloads per month
Used in 4 crates

MIT/Apache

585KB
421 lines

tqdm

Rust implementation of Python command line progress bar tool tqdm.

From original documentation:

tqdm derives from the Arabic word taqaddum (تقدّم) which can mean "progress," and is an abbreviation for "I love you so much" in Spanish (te quiero demasiado).

Instantly make your loops show a smart progress meter - just wrap any iterable with tqdm(iterable), and you're done!

demo

This crate provides a wrapper Iterator. It controls multiple progress bars when next is called.

Most traits are bypassed with auto-dereference, so original methods can be called with no overhead.

Usage

Just wrap anything that implements the Iterator trait with tqdm

use tqdm::tqdm;
for i in tqdm(0..10000) {
  ...
 76%|███████████████▉     | 7618/10000 [00:09<00:03, 782.14it/s]

Expose trait to allow method chaining

use tqdm::Iter;
for i in (0..).take(10000).tqdm().style(tqdm::Style::Balloon) {
  ...
 47%|**********.          | 4792/10000 [00:06<00:06, 783.39it/s]

Multi-threading is also supported!

use tqdm::tqdm;
use std::thread;
for t in (0..3) {
  thread::spawn(move || {
    for i in tqdm(0..).style(...) {
      ...
 38%|##########0               | 77/200 [00:00<00:01, 83.24it/s]
 77%|████████████████████      | 77/100 [00:00<00:00, 83.24it/s]
 19%|*****.                    | 77/400 [00:00<00:03, 83.24it/s]

For more usage, please refer to doc

Dependencies

~1–11MB
~86K SLoC