luser/strip-ansi-escapes
GitHub: luser/strip-ansi-escapes
一个 Rust 库,用于从字节流中移除 ANSI 转义序列,使带颜色的终端输出能够写入到不支持这些序列的环境。
Stars: 48 | Forks: 15
 [](https://crates.io/crates/strip-ansi-escapes) [](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, 可视化界面, 字符串过滤, 开发库, 开源项目, 文本处理, 日志清洗, 网络流量审计, 通知系统, 通知系统