40 个版本

0.15.8 2024年1月9日
0.15.7 2023年5月21日
0.15.5 2023年1月14日
0.15.3 2022年12月27日
0.5.0 2017年6月28日

#10 in 命令行界面

Download history 605071/week @ 2024-04-23 580980/week @ 2024-04-30 578707/week @ 2024-05-07 627386/week @ 2024-05-14 626956/week @ 2024-05-21 655687/week @ 2024-05-28 666894/week @ 2024-06-04 682766/week @ 2024-06-11 641261/week @ 2024-06-18 665452/week @ 2024-06-25 614537/week @ 2024-07-02 644319/week @ 2024-07-09 658971/week @ 2024-07-16 692877/week @ 2024-07-23 663745/week @ 2024-07-30 712987/week @ 2024-08-06

2,849,058 每月下载量
用于 4,203 个 crate (897 直接)

MIT 许可证

115KB
3K SLoC

console

Build Status Crates.io License rustc 1.56.0 Documentation

console 是一个 Rust 库,提供对各种终端功能的访问,以便您构建更美观的命令行界面。它包含各种工具和实用程序,用于处理终端和格式化文本。

与家族中的其他库搭配使用最佳

终端访问

终端通过 console::Term 类型进行抽象。它可以直接提供对连接的终端的访问,或者通过缓冲命令。但是,在 Windows 上,由于光标移动目前是直接传递的,所以缓冲终端不会被完全缓冲。

示例用法

use std::thread;
use std::time::Duration;

use console::Term;

let term = Term::stdout();
term.write_line("Hello World!")?;
thread::sleep(Duration::from_millis(2000));
term.clear_line()?;

颜色和样式

console 会自动检测是否使用颜色,基于 tty 标志。它还提供了高级包装器来对文本和其他可以与 style 函数和实用类型一起显示的内容进行样式化。

示例用法

use console::style;

println!("This is {} neat", style("quite").cyan());

您还可以存储样式,并在以后将其应用到文本上

use console::Style;

let cyan = Style::new().cyan();
println!("This is {} neat", cyan.apply_to("quite"));

处理 ANSI 代码

此 crate 提供了 strip_ansi_codes 函数,用于从字符串中删除 ANSI 代码,以及 measure_text_width 函数,用于计算字符串在终端中的显示宽度。这两个函数结合在一起,对更复杂的格式化非常有用。

Unicode 宽度支持

默认情况下,此 crate 依赖于 unicode-width crate 来计算终端字符的宽度。如果您不需要此功能,可以禁用 unicode-width 功能,这将减少依赖项。

许可证: MIT

依赖项

~0.3–8.5MB
~58K SLoC