3个版本
0.8.2 | 2020年8月22日 |
---|---|
0.8.1 | 2020年6月27日 |
0.8.0 | 2020年5月29日 |
#696 in 命令行界面
用于 rumatui
355KB
11K SLoC
tui-rs
tui-rs
是一个用于构建丰富的终端用户界面和仪表板的 Rust 库。它深受 JavaScript
库 blessed-contrib 和 Go
库 termui 的启发。
该库本身支持四种不同的后端来绘制到终端。您可以从以下选项中选择:
但是,某些功能可能仅在四种之一中可用。
该库基于即时渲染与中间缓冲区原则。这意味着在每一帧中,您应该构建所有应包含在 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 中文本用户界面的替代解决方案。
许可协议
依赖关系
~1.5MB
~25K SLoC