luser/strip-ansi-escapes

GitHub: luser/strip-ansi-escapes

一个 Rust 库,用于从字节流中移除 ANSI 转义序列,使带颜色的终端输出能够写入到不支持这些序列的环境。

Stars: 48 | Forks: 15

![Continuous integration](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/fecb0be82b193917.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) 一个用于从字节序列中去除 ANSI 转义序列的 crate。 这可用于获取包含转义序列的程序输出,并将其写入到不太支持这些序列的地方,例如日志文件。 # 示例 `strip` 函数接受字节并返回一个移除了 ANSI 转义序列的字节 `Vec`。 ``` 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(); } ``` 若要直接写入到一个 writer,使用 `Writer` 结构体可能更合适。 ``` 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(); } ``` # 许可证 根据以下两项许可之一授权: * Apache License, Version 2.0 ([`LICENSE-APACHE`](./LICENSE-APACHE) 或 http://www.apache.org/licenses/LICENSE-2.0) * MIT license ([`LICENSE-MIT`](./LICENSE-MIT) 或 http://opensource.org/licenses/MIT) 由您选择。
标签:ANSI转义序列, Crates.io, DNS 反向解析, DNS解析, IO流处理, Rust, 可视化界面, 字符串过滤, 开发库, 开源项目, 文本处理, 日志清洗, 网络流量审计, 通知系统, 通知系统