3 个版本 (破坏性更新)

0.3.0 2024年7月7日
0.2.0 2024年3月24日
0.1.0 2024年2月15日

命令行界面 中排名第 878

Download history 112/week @ 2024-07-07 4/week @ 2024-07-14

每月下载 137

MIT/Apache

215KB
1.5K SLoC

🏔️ Tundra

Tundra 提供了一个框架和实用工具,用于使用 Ratatui 创建交互式终端应用。

Ratatui 是一个用于在终端中创建单一用户界面的综合库,但缺乏组织较大应用程序(由几个界面组成)和接收用户数据输入的功能。

Tundra 旨在通过以下实用工具扩展 Ratatui 的功能:

  • 定义应用程序状态。
  • 管理终端环境和上下文。
  • 通过模态对话框显示消息。
  • 通过输入表单和字段接收用户输入。

Tundra 还具有高度的扩展性,可以通过工具轻松定义自己的对话框和输入字段。

是为了替代 Ratatui 或其包装器,也不是为了后端。Ratatui 仍然需要绘制每个应用程序状态的用户界面,后端仍然需要进行低级终端操作。

📚 文档

阅读文档 这里

🪪 模态对话框

模态对话框是在背景应用程序状态之上显示的小弹出“窗口”。它们包含消息或提示用户输入,只需调用一个函数即可显示。以下是在对话框中显示的错误消息示例

dialog error demo

Tundra 定义了几个此类对话框,并提供了易于使用的接口,同时提供了创建自定义对话框的实用工具。

🕹️ 用户输入

用户输入通过宏实现,该宏在对话框内显示具有指定字段的表单。宏调用的返回值是一个结构体,其中包含用户为每个字段输入的值。值和字段都存储在宏内部创建的不可拼写的结构体的成员中——不需要运行时查找!以下是一个此类表单的示例

dialog form demo

Tundra 定义了多种类型的字段,用于输入常见类型的数据,并提供了创建自定义字段的实用工具。

🪧 关于后端的说明

Ratatui 支持多个终端后端。如果您不知道这是什么意思,此说明对您没有意义。

Tundra 目前仅支持 crossterm 后端。这是由于缺乏对不同后端的抽象。必须为每个后端编写和重复代码——特别是与上下文和事件处理相关的代码。

如果您需要为项目添加其他后端,Tundra可能不适合您——至少目前是这样的。

依赖项

约6-12MB
约121K SLoC