Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/clitic/kdam
A console progress bar library for Rust. (inspired by tqdm & rich.progress)
https://github.com/clitic/kdam
console progress progress-bar progressbar rust terminal
Last synced: 13 days ago
JSON representation
A console progress bar library for Rust. (inspired by tqdm & rich.progress)
- Host: GitHub
- URL: https://github.com/clitic/kdam
- Owner: clitic
- License: apache-2.0
- Created: 2022-02-17T14:35:17.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-09-30T03:56:06.000Z (about 1 month ago)
- Last Synced: 2024-10-06T00:22:15.708Z (about 1 month ago)
- Topics: console, progress, progress-bar, progressbar, rust, terminal
- Language: Rust
- Homepage: https://docs.rs/kdam
- Size: 2.78 MB
- Stars: 188
- Watchers: 3
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
README
kdam
kdam is a console progress bar library for rust. It is port of [tqdm](https://github.com/tqdm/tqdm) library which is written in python. kdam supports almost all features of tqdm except a few. It also supports [jupyter notebook](https://github.com/clitic/kdam/tree/main/kdam/examples/notebook) same as tqdm does. Some features of tqdm can't be ported directly. So they are implemented in different way like, [RowManager](https://docs.rs/kdam/latest/kdam/struct.RowManager.html) which manages multiple progress bars but in tqdm progress bars are automatically managed using `nrows`. In addition to tqdm existing features kdam also provides extra features such as spinners, charset with fill, gradient colours etc. Since, kdam is written in rust its upto 4 times faster than tqdm.
Instantly make your loops show a smart progress meter. Just wrap any iterator with tqdm!(iterator) macro and you're done!
```rust
use kdam::tqdm;fn main() {
for _ in tqdm!(0..100) {}
}
``````
100%|█████████████████████████████| 100/100 [00:00<00:00, 25854.49it/s]
```kdam also supports different bar animation styles. All available bar animation styles are:
[kdam/examples/showcase/animations.rs](https://github.com/clitic/kdam/blob/main/kdam/examples/showcase/animations.rs)
![showcase_animations](https://raw.githubusercontent.com/clitic/kdam/main/images/animations.gif)kdam also supports [rich.progress](https://rich.readthedocs.io/en/latest/progress.html) style bars with customizable columns.
[kdam/examples/rich.rs](https://github.com/clitic/kdam/blob/main/kdam/examples/rich.rs)
![showcase_rich_progress_animation](https://raw.githubusercontent.com/clitic/kdam/main/images/rich_progress.gif)kdam doesn't restrict you to use default progress bar style. You can create your own progress bar using [bar_format](https://docs.rs/kdam/latest/kdam/struct.BarBuilder.html#method.bar_format) template. If you are not satisfied with bar_format limited options then you can also build your own [custom progress bar](https://github.com/clitic/kdam/blob/main/kdam/examples/miscellaneous/custom.rs).
This is clone of [alive-progress](https://github.com/rsalmei/alive-progress) using kdam.
[kdam/examples/template.rs](https://github.com/clitic/kdam/blob/main/kdam/examples/template.rs)
![showcase_alive_progress_template](https://raw.githubusercontent.com/clitic/kdam/main/images/template.gif)If you like colours then you can also create a gradient progress bar.
[kdam/examples/coloured/gradient.rs](https://github.com/clitic/kdam/blob/main/kdam/examples/coloured/gradient.rs)
![showcase_gradient](https://raw.githubusercontent.com/clitic/kdam/main/images/gradient.gif)## Getting Started
Add this to your Cargo.toml file.
```toml
[dependencies]
kdam = "0.5.2"
```Or add from command line.
```bash
$ cargo add kdam
```See [docs](https://docs.rs/kdam) and [examples](https://github.com/clitic/kdam/tree/main/kdam/examples) to
know how to use it.## License
Dual Licensed
- [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) ([LICENSE-APACHE](https://github.com/clitic/kdam/blob/main/kdam/LICENSE-APACHE))
- [MIT license](https://opensource.org/licenses/MIT) ([LICENSE-MIT](https://github.com/clitic/kdam/blob/main/kdam/LICENSE-MIT))