Colors
A zero-allocation no_std-compatible zero-cost way to add color to your Rust terminal to make people go owo.
Supports:
- All std/core formatters
- Optional checking for if a terminal supports colors
- Enabled for CI
- Disabled by default for non-terminal outputs
- Overridable by
NO_COLOR
/FORCE_COLOR
environment variables - Overridable programmatically via
set_override
- Dependency-less by default
- 100% safe code
- Most functions are
const
- Hand picked names for all ANSI (4-bit) and Xterm (8-bit) colors
- Support for RGB colors
- Set colors at compile time by generics or at runtime by value
- All ANSI colors
- Basic support (normal and bright variants)
- Xterm support (high compatibility and 256 colors)
- Truecolor support (modern, 48-bit color)
- Styling (underline, strikethrough, etc)
owo-colors is also more-or-less a drop-in replacement for colored, allowing colored to work in a no_std environment. No allocations or dependencies required because embedded systems deserve to be pretty too uwu.
To add to your Cargo.toml:
= "4"
Example
use OwoColorize;
Generic colors
use OwoColorize;
use *;
Stylize
use OwoColorize;
println!;
Only Style on Supported Terminals
use ;
println!;
Supports NO_COLOR
/FORCE_COLOR
environment variables, checks if it's a tty,
checks if it's running in CI (and thus likely supports color), and checks which
terminal is being used. (Note: requires supports-colors
feature)
Minimum supported Rust version (MSRV)
The MSRV of owo-colors is Rust 1.70.
This library has a conservative MSRV policy — Rust versions from the last 12 months will be supported (features available in newer versions will be gated by build.rs
), the MSRV will only be bumped if required, and if the MSRV is bumped it will always occur with a new minor version.