Expand description

Prodash is a dashboard for displaying the progress of concurrent application.

It consists of two parts

  • a Tree to gather progress information and messages
  • a terminal user interface which displays this information, along with optional free-form information provided by the application itself

Even though the Tree is not async, it’s meant to be transparent and non-blocking performance wise, and benchmarks seem to indicate this is indeed the case.

The terminal user interface seems to be the least transparent part, but can be configured to refresh less frequently.

Terminal User Interface

By default, a TUI is provided to visualize all state. Have a look at the example provided in the tui module.

Please note that it is behind the render-tui feature toggle, which is enabled by default.


If the feature progress-tree-log is enabled (default), most calls to progress will also be logged. That way, even without a terminal user interface, there will be progress messages. Please note that logging to stdout should not be performed with this feature enabled and a terminal user interface is shown, as this will seriously interfere with the TUI.

A demo application

Please have a look at the dashboard demo.


Run it with cargo run --example dashboard and see what else it can do by checking out cargo run --example dashboard -- --help.


pub use atty;



Logs a message at the info level.

Logs a message at the warn level.


A utility to compute throughput of a set of progress values usually available to a renderer.

The top-level of the progress tree.

A way to configure new tree::Root instances

A configurable and flexible unit for use in Progress::init().


A trait for describing hierarchical process.

The top level of a progress task hiearchy, with progress::Tasks identified with progress::Keys

The top-level root as weak handle, which needs an upgrade to become a usable root.