#进度条 #进度 #tqdm #cli #pb #parallel-iterator

simple-tqdm

一个类似于Python的tqdm的简单进度条库

5个版本

0.2.0 2024年4月6日
0.1.4 2023年10月2日
0.1.3 2023年10月2日
0.1.2 2023年10月2日
0.1.1 2023年10月2日

394命令行界面

Download history 11/week @ 2024-04-09 4/week @ 2024-05-21 2/week @ 2024-05-28 4/week @ 2024-06-04

每月262次下载

MIT 许可证

14KB
212

simple-tqdm

一个小的Rust库,围绕indicatif包装,并尝试与Python的tqdm库相似。

examples/multiple.rs

examples/large.rs


lib.rs:

simple-tqdm 是一个小的indicatif包装器,尝试与Python的tqdm库相似。

tqdm 包含一个 tqdm 函数和一个 Tqdm 特征,根据您的偏好。

示例

use simple_tqdm::tqdm;

for _ in tqdm(0..2 << 24) {}
或者,如果您想自定义进度条
use simple_tqdm::{Tqdm, Config};

let config = Config::new().with_unit("num");
for _ in (0..2 << 24).tqdm_config(config) {}

或者,如果您想使用多个进度条。

use simple_tqdm::{Tqdm, Config};
fn main() {
    let config = Config::new().with_progress_chars(">= ");
    std::thread::scope(|scope| {
        for _ in 0..3 {
            scope.spawn(|| for _ in (0..2 << 24).tqdm_config(config.clone()) {});
        }   
    });
}

并行迭代器

tqdm 还提供对Rayon的并行迭代器的可选支持。在您的 Cargo.toml 中,使用 "rayon" 功能

[dependencies]
simple-tqdm = {version = "*", features = ["rayon"]}

然后这样使用它

use simple_tqdm::ParTqdm;
use rayon::prelude::*;

let vec: Vec<_> = (0..100000).into_par_iter().tqdm().map(|i| i + 1).collect();
assert_eq!(vec[0], 1);

依赖关系

~1.5–8.5MB
~63K SLoC