#tui #终端界面 #用户界面 #终端 #仪表板 #小部件 #后端

rumatui-tui

用于构建丰富的终端用户界面或仪表板的库

3个版本

0.8.2 2020年8月22日
0.8.1 2020年6月27日
0.8.0 2020年5月29日

#696 in 命令行界面


用于 rumatui

MIT 许可证

355KB
11K SLoC

tui-rs

Build Status Crate Status Docs Status

Demo cast under Linux Termite with Inconsolata font 12pt

tui-rs 是一个用于构建丰富的终端用户界面和仪表板的 Rust 库。它深受 JavaScriptblessed-contribGotermui 的启发。

该库本身支持四种不同的后端来绘制到终端。您可以从以下选项中选择:

但是,某些功能可能仅在四种之一中可用。

该库基于即时渲染与中间缓冲区原则。这意味着在每一帧中,您应该构建所有应包含在 UI 中的小部件。虽然这为丰富的交互式 UI 提供了很大的灵活性,但这可能会为高度动态的内容引入开销。因此,实现尝试最小化生成以绘制更新 UI 的 ANSI 转义序列的数量。在实践中,由于 Rust 的速度,开销更多来自终端模拟器而不是库本身。

此外,该库不提供任何输入处理或任何事件系统,您可能需要依靠之前提到的库来实现这些功能。

文档

演示

gif 中所示的演示可以在所有可用的后端中运行(exmples/*_demo.rs 文件)。例如,要查看 termion 版本,可以运行

cargo run --example termion_demo --release -- --tick-rate 200

其中 tick-rate 是 UI 刷新率(毫秒)。

UI 代码在 examples/demo/ui.rs 中,而应用程序状态在 examples/demo/app.rs 中。

请注意,termion_demo 仅在 Unix 平台上工作。如果您是 Windows 用户,可以使用以下命令使用 crossterm 后端查看相同的演示

cargo run --example crossterm_demo --no-default-features --features="crossterm" --release -- --tick-rate 200

小部件

该库附带以下列表的小部件

点击每个项目以查看示例的源代码。使用 cargo 运行示例(例如,要运行演示 cargo run --example demo),并按 q 键退出。

您可以运行所有示例,只需运行 make run-examples

第三方小部件

使用 tui 的应用程序

替代方案

您可能想查看 Cursive 以获取构建 Rust 中文本用户界面的替代解决方案。

许可协议

MIT

依赖关系

~1.5MB
~25K SLoC