17 releases (2 stable)
1.0.1 | Mar 13, 2024 |
---|---|
1.0.0-rc.1 | Aug 11, 2023 |
1.0.0-rc | Jul 7, 2023 |
0.5.1 | Mar 23, 2022 |
0.3.2 | Jul 26, 2017 |
#11 in Command-line interface
3,260,642 downloads per month
Used in 4,333 crates
(209 directly)
93KB
1K
SLoC
Usage
In your Cargo.toml
:
[dependencies]
yansi = "1.0"
In your source code:
use yansi::Paint;
println!("Testing, {}, {}, {}!",
"Ready".bold(),
"Set".black().on_yellow().invert().italic(),
"STOP".white().on_red().bright().underline().bold());
See the rustdocs for complete usage details.
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 withdefault-features = false
. Style
constructors areconst
: store styles statically, even with dynamic conditions!- Any type implementing a formatting trait can be styled, 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.
- Styling can linger beyond a single value.
- Experimental support for hyperlinking is included.
- The name
yansi
is pretty cool 😎.
License
yansi
is licensed under either of the following, at your option:
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT License (LICENSE-MIT or http://opensource.org/licenses/MIT)
Dependencies
~0–6.5MB
~36K SLoC