6 releases

Uses new Rust 2024

new 0.1.5 Apr 13, 2025
0.1.4 Apr 12, 2025

#265 in Command-line interface

Download history 49/week @ 2025-03-29 277/week @ 2025-04-05

326 downloads per month

MPL-2.0 license

70KB
989 lines

banner

Run cargo run --example banner -r to print the Banner!

Colored Next (CNXT)

crates.io

An enhanced fork of colored offering superior performance and terminal handling.

Why CNXT?

  1. Optimized Performance: Utilizes Cow for intelligent memory management (Inspired by PR#135)
  2. Modern Codebase: Removed legacy code and streamlined implementation
  3. Advanced Terminal Support: Sophisticated terminal capability detection with automatic color downgrading

Usage

Coloring your terminal made simple. You already know how to do it.

usage

Essential Configuration

  1. For Windows targets, add this to enable colors in Windows CMD:

    #[cfg(windows)]
    cnxt::control::set_virtual_terminal(true);
    

    Comparison showing how Windows CMD displays colors before and after enabling virtual terminal.

    comparison

  2. CNXT dynamically detects terminal color support across three tiers:

    • Ansi16 (16 colors)
    • Ansi256 (256 colors)
    • TrueColor

    When using colors beyond your terminal's capabilities, CNXT automatically downgrades them to the maximum supported level.

    Manual control options:

    use cnxt::control::{set_should_colorize, ShouldColorize};
    
    // Environment-based detection level (default)
    set_should_colorize(ShouldColorize::from_env());
    
    // Explicit configuration
    set_should_colorize(ShouldColorize::YesWithTrueColor);  // Force truecolor
    set_should_colorize(ShouldColorize::YesWithAnsi256);    // Force 256-color
    set_should_colorize(ShouldColorize::No);                // Disable colors
    set_should_colorize(ShouldColorize::Yes);               // Enable colors with auto-detect level
    
    // Manual color fallback
    use cnxt::Color;
    let truecolor = Color::TrueColor { r: 166, g: 227, b: 161 };
    let ansi16 = truecolor.fallback_to_ansi16();
    let ansi256 = truecolor.fallback_to_ansi256();
    
  3. Optional Terminal Detection: By default, CNXT automatically detects terminal capabilities, but you can disable this feature:

    [dependencies]
    cnxt = { version = "0", default-features = false }
    

    This will enable TrueColor support without terminal capability detection.

License

CNXT maintains the original MPL-2.0 License from the colored project.

Dependencies

~0–7.5MB
~51K SLoC