# \[ANN\] Progress 0.2.0

**URL:** <https://discuss.ocaml.org/t/ann-progress-0-2-0/8063>\
**Category:** Community\
**Created:** [June 27, 2021, 5:37am UTC](https://discuss.ocaml.org/t/ann-progress-0-2-0/8063 "2021-06-27T05:37:22Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![CraigFe](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/craigfe/32/1989_2.png) [@CraigFe](https://discuss.ocaml.org/u/CraigFe)\
**Post date:** [June 27, 2021, 5:37am UTC](https://discuss.ocaml.org/t/ann-progress-0-2-0/8063/1 "2021-06-27T05:37:22Z")

</div>

I’m pleased to announce the 0.2.0 release of [`Progress`](https://github.com/craigfe/progress), now available via Opam.

 ![image](https://us1.discourse-cdn.com/flex020/uploads/ocaml/original/2X/7/727d878b6d17f3c48e6946f4df424bcc59938da3.png)

`Progress` is an OCaml library for defining and using progress bars. It has the following features:

- allows user-defined progress bar layouts;
- supports rendering multiple progress bars simultaneously;
- dynamically responds to changes in terminal size;
- supports interleaving logging with progress bar rendering.

This second release contains a much-improved DSL for specifying progress bars, alongside improvements and extensions to the rendering logic. The bars in the screenshot above are defined as follows:

```nohighlight
let bar ~color ~total =
  let open Progress.Line in
  list
    [ spinner ~color:(Progress.Color.ansi `green) ()
    ; brackets (elapsed ())
    ; bar ~color total
    ; bytes
    ; parens (const "eta: " ++ eta total)
    ]

```

It also comes with more complete [documentation](https://craigfe.github.io/progress/progress/Progress/index.html) and many more [examples](https://github.com/CraigFe/progress/tree/main/examples), including:

- a Cargo-like progress bar w/ logging of intermediate results:

 ![image](https://us1.discourse-cdn.com/flex020/uploads/ocaml/original/2X/4/4b148999f7b6029ac0155b049b6a7cf1fa8b40f1.png)

- a Yarn-like stack of spinners:

 ![image](https://us1.discourse-cdn.com/flex020/uploads/ocaml/original/2X/6/67ccf011a403a4c082829f69d5a609b4c0c23f6e.png)

- a showcase of various progress bar styles:

 ![image](https://us1.discourse-cdn.com/flex020/uploads/ocaml/original/2X/d/d4df4a2df07fd161982243251fbee56d52a4afbf.png)

The changelog is [here](https://github.com/CraigFe/progress/blob/0.2.0/CHANGES.md#020-2021-06-26) and the API documentation is [here](https://craigfe.github.io/progress/progress/Progress/index.html). The library is not yet feature-complete, but should still be reasonably useful 🙂 Happy hacking!

---

<div class="post-metadata">

**Author:** ![Drup](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/drup/32/35_2.png) [@Drup](https://discuss.ocaml.org/u/Drup)\
**Post date:** [June 28, 2021, 9:27am UTC](https://discuss.ocaml.org/t/ann-progress-0-2-0/8063/2 "2021-06-28T09:27:26Z")

</div>

Damn, that is a very polished library, congrats! 😃

You are missing a very important one: pacman progress bars !  
 ![image](https://us1.discourse-cdn.com/flex020/uploads/ocaml/original/2X/9/995485d8616c3d75e4b87942842039389874b715.png)

---

<div class="post-metadata">

**Author:** ![CraigFe](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/craigfe/32/1989_2.png) [@CraigFe](https://discuss.ocaml.org/u/CraigFe)\
**Post date:** [June 28, 2021, 7:01pm UTC](https://discuss.ocaml.org/t/ann-progress-0-2-0/8063/3 "2021-06-28T19:01:37Z")

</div>

> [@Drup](#):
>
> Damn, that is a very polished library, congrats! 😃

Thanks 😊

> [@Drup](#):
>
> You are missing a very important one: pacman progress bars !

Excellent point; will add one of these ASAP 😁
