4 releases

Uses old Rust 2015

0.2.1 Jan 14, 2025
0.2.0 Aug 9, 2023
0.1.2 Aug 8, 2023
0.1.1 Aug 24, 2021
0.1.0 Feb 2, 2018

#27 in Command-line interface

Download history 127281/week @ 2024-12-08 129389/week @ 2024-12-15 74325/week @ 2024-12-22 78892/week @ 2024-12-29 136449/week @ 2025-01-05 157007/week @ 2025-01-12 143281/week @ 2025-01-19 149194/week @ 2025-01-26 167856/week @ 2025-02-02 254072/week @ 2025-02-09 247302/week @ 2025-02-16 320917/week @ 2025-02-23 302255/week @ 2025-03-02 221949/week @ 2025-03-09 300880/week @ 2025-03-16 166388/week @ 2025-03-23

1,010,748 downloads per month
Used in 572 crates (184 directly)

Apache-2.0/MIT

10KB
126 lines

Continuous integration crates.io

A crate for stripping ANSI escape sequences from byte sequences.

This can be used to take output from a program that includes escape sequences and write it somewhere that does not easily support them, such as a log file.

Examples

The strip function accepts bytes and returns a Vec of bytes with ANSI escape sequences removed.

extern crate strip_ansi_escapes;

use std::io::{self, Write};

fn work() -> io::Result<()> {
  let bytes_with_colors = b"\x1b[32mfoo\x1b[m bar";
  let plain_bytes = strip_ansi_escapes::strip(&bytes_with_colors);
  io::stdout().write_all(&plain_bytes)?;
  Ok(())
}

fn main() {
    work().unwrap();
}

For writing directly to a writer, the Writer struct may be preferable.

extern crate strip_ansi_escapes;

use std::io::{self, Write};
use strip_ansi_escapes::Writer;

fn work() -> io::Result<()> {
  let bytes_with_colors = b"\x1b[32mfoo\x1b[m bar";
  let mut writer = Writer::new(io::stdout());
  // Only `foo bar` will be written to stdout
  writer.write_all(bytes_with_colors)?;
  Ok(())
}

fn main() {
    work().unwrap();
}

License

Licensed under either of

at your option.

Dependencies

~245–385KB