5 个版本 (3 个重大更新)
新 0.3.0-a2+checkboxes | 2024 年 8 月 18 日 |
---|---|
0.2.2-shelves | 2024 年 8 月 11 日 |
0.1.1 | 2024 年 8 月 9 日 |
0.0.1 | 2024 年 7 月 28 日 |
0.0.0 |
|
#153 在 命令行界面
每月 732 次下载
180KB
3K SLoC
tuix(发音为 To-It,或 Toy-t)
注意:tuix 是一个 W.I.P。
-
尽管库的主体已经存在且文档编写良好,但 tuix 真正缺少的是一些更多的控件!
-
还需要更多的测试!
-
目前,存在几个布局控件,如
Stacked
、Centered
和Margin
。有关更多信息,请参阅 文档。 -
还有一个
Buttons
控件和一个Text
控件。有关更多信息,请参阅 文档。 -
当前许可证为 GPL-3.0+ — 这是因为从 GPL-3 到更宽松的许可证要容易得多,但反之则不然。在可预见的未来,我将在 GPL-3.0+ 许可证下发布未来的版本,但我对建议持开放态度。
-
如果您有任何疑问,可以打开一个 问题。
为无标准库、无分配的 Rust 用户提供的 TUI 库!
tuix 不提供一组完整的工具来处理终端。它可以被认为是 MVC 架构中的 '视图' 组件,因为它只处理终端对象的显示。然而,它不会为您处理诸如输入、绘制顺序或其他应用程序状态等问题 — 主要因为这些事情太过于实现特定。
这意味着,尽管终端对象可能具有处理自身状态的良好功能,但您才是程序逻辑的最终控制者。
虚拟终端
tuix 的基础是一个对终端的抽象;虚拟终端。
虚拟终端是实现 tuit::terminal::Terminal
的任何东西,并且有一些选项既可以避免又可以使用分配(请注意,alloc
功能对于某些动态调整大小的终端是必需的,但还有一个不分配的 MaxSize
可以无限扩展到指定的参数)。
想法搁置
-
按照
tuit
的制作方式,您可以将BoundingBox
小部件组合起来创建完整的布局。 -
...那么,如果您能够创建一个将这些小部件串联起来的 TUI 应用程序会怎么样呢?
-
...以 Unix 风格的方式,允许您创建一个由小部件组成的 TUI 应用程序,然后您可以将它作为一个命令行程序运行。
-
我正式称之为 "wedge"(楔子)
wedge text "Hello, world!"
| wedge above
$(wedge button "Button 1")
| wedge center
肯定没有人之前想过这个,对吧?
这个启示突然出现在我的脑海中,我不得不把它写下来。
MSRV 政策
当前最低要求版本:Rust Stable 1.80
我的个人建议是坚持使用最新的稳定版。直到最近,这个库基于 nightly 版本,因为一些需要的功能缺失--然而,截至撰写 Rust 1.80 时,它们都已经可用,所以我可以转向稳定版。
依赖项
~0.4–1.4MB
~29K SLoC