termpulse 0.1.0

Native terminal progress indicators via OSC 9;4 — with smart detection, graceful fallback, throttling, and stall detection.
Documentation
  • Coverage
  • 100%
    57 out of 57 items documented2 out of 38 items with examples
  • Size
  • Source code size: 48.92 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 6.15 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 15s Average build duration of successful builds.
  • all releases: 15s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • Homepage
  • justinhuangcode/termpulse
    1 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • justinhuangcode

termpulse

Crates.io docs.rs License

Native terminal progress indicators via OSC 9;4 -- with smart terminal detection, graceful fallback, throttling, and ETA estimation.

Usage

use termpulse::Controller;

let mut ctrl = Controller::auto();
ctrl.set(25, "Downloading");
ctrl.set(50, "Downloading");
ctrl.set(75, "Downloading");
ctrl.done("Complete");

Features

  • Zero-config detection -- auto-detects 10+ terminals (Ghostty, WezTerm, iTerm2, Kitty, Windows Terminal, VS Code, and more)
  • Three-tier fallback -- OSC 9;4 native > ASCII progress bar > silent mode
  • tmux DCS passthrough -- automatic multiplexer detection and wrapping
  • Throttle + dedup -- 150ms rate limiting with deduplication
  • ETA estimation -- exponential moving average algorithm
  • Label sanitization -- prevents escape sequence injection
  • NO_COLOR support -- respects no-color.org convention
  • Dependency injection -- all I/O is injectable via traits for testing

Part of termpulse

This is the main library crate. For the low-level no_std core, see termpulse-core. For the CLI, see termpulse-cli.

License

MIT