| ![Continuous integration](https://github.com/luser/strip-ansi-escapes/workflows/Continuous%20integration/badge.svg) [![crates.io](https://img.shields.io/crates/v/strip-ansi-escapes.svg)](https://crates.io/crates/strip-ansi-escapes) [![](https://docs.rs/strip-ansi-escapes/badge.svg)](https://docs.rs/strip-ansi-escapes) |
| |
| 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. |
| |
| ```rust |
| 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. |
| |
| ```rust |
| 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 |
| |
| * Apache License, Version 2.0 ([`LICENSE-APACHE`](./LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0) |
| * MIT license ([`LICENSE-MIT`](./LICENSE-MIT) or http://opensource.org/licenses/MIT) |
| |
| at your option. |
| |