#progress #state #osc94

bin+lib osc94

Library for handling progress bar sequences (OSC 9;4)

2 releases

Uses new Rust 2024

0.1.1 Apr 21, 2025
0.1.0 Apr 20, 2025

#45 in #progress

Download history 210/week @ 2025-04-16 40/week @ 2025-04-23 5/week @ 2025-04-30 10/week @ 2025-05-07

265 downloads per month

MIT license

16KB
167 lines

osc94

GitHub License GitHub Workflow Status GitHub Release GitHub Downloads (all assets, all releases) Crates.io Version Crates.io Total Downloads docs.rs

Library for handling progress bar sequences (OSC 9;4).

💡 Example

use osc94::Progress;
use std::io::Result;

# fn work() {}
#
fn main() -> Result<()> {
    let mut progress = Progress::default();
    progress.start();

    for i in 0..=100 {
        work();
        progress.increment(1).flush()?;
    }

    Ok(())
}

See more examples in the examples directory.

📖 Usage

Usually, you'll only need the Progress struct, which provides a high-level interface and handles clean up job for you when dropped. If you need finer control, you can use the OSC94 struct and ProgressState enum. See the documentation of respective API for more details.

📥 Binary

The provided binary allows you to play with progress bar sequences:

$ osc94
Sets the progress state and value of the progress bar for 1 second.

Usage: osc94 <state> <progress>

States:
  0/hidden
  1/normal
  2/error
  3/indeterminate
  4/warning

Progress: 0-100

It can be installed via the following methods:

Using binstall

cargo binstall osc94

Downloading from Releases

Navigate to the Releases page and download respective binary for your platform. Make sure to give it execute permissions.

Compiling from Source

cargo install osc94

🎉 Credits

No runtime deps

Features