yansi 1.0.0-beta

A dead simple ANSI terminal color painting library.
Documentation

yansi

Build Status Current Crates.io Version Documentation

A dead simple ANSI terminal color painting library.

use yansi::Paint;

println!("Testing, {}, {}, {}!",
    "Ready".bold(),
    "Set".black().on_yellow().invert().italic(),
    "STOP".white().on_red().bright().underline().bold());

> Testing, Ready, Set, STOP!

Features

Why yet another ANSI terminal coloring library? Here are some reasons:

  • This library makes simple things simple: use Paint and go!
  • Zero dependencies by default. It really is simple.
  • Zero allocations except as needed by opt-in wrapping.
  • Automatic Windows support for the vast majority (95%+) of Windows users.
  • Featureful no_std, no-alloc, support with default-features = false.
  • Style constructors are const: store styles statically, even with dynamic conditions!
  • Any type implementing a formatting trait can be stylized, not just strings.
  • Styling can be enabled and disabled globally and dynamically, on the fly.
  • A Style can be predicated on arbitrary conditions.
  • Formatting specifiers like {:x} and {:08b} are supported and preserved!
  • Built-in (optional) conditions for TTY detection and common environment variables.
  • Arbitrary items can be masked for selective disabling.
  • Styling can wrap to preserve styling across resets.
  • Experimental support for hyperlinking is included.
  • The name yansi is pretty cool 😎.

License

yansi is licensed under either of the following, at your option: