ratatui/ratatui
GitHub: ratatui/ratatui
一个 Rust 终端 UI 框架,帮助开发者快速构建跨平台的交互式命令行应用界面。
Stars: 18914 | Forks: 594
目录
- [快速开始](#quickstart) - [文档](#documentation) - [模板](#templates) - [基于 Ratatui 构建](#built-with-ratatui) - [替代方案](#alternatives) - [贡献](#contributing) - [致谢](#acknowledgements) - [许可证](#license)
[![Crate Badge]][Crate] [![Repo Badge]][Repo] [![Docs Badge]][Docs] [![License Badge]][License] \
[![CI Badge]][CI] [![Deps Badge]][Deps] [![Codecov Badge]][Codecov] [![Sponsors Badge]][Sponsors] \
[Ratatui Website] · [Docs] · [Widget Examples] · [App Examples] · [Changelog] \
[Breaking Changes] · [Contributing] · [Report a bug] · [Request a Feature]
[Ratatui][Ratatui Website] (_ˌræ.təˈtu.i_) 是一个用于构建终端用户界面
(TUI) 的 Rust crate。它提供了一种简单且灵活的方式在终端中创建基于文本的用户界面,
可用于命令行应用程序、仪表板和其他交互式控制台程序。
## 快速开始
Ratatui 提供了[模板][templates]以帮助您快速入门。您可以使用
[`cargo-generate`] 命令通过 Ratatui 创建一个新项目:
```
cargo install --locked cargo-generate
cargo generate ratatui/templates
```
选择 Hello World 模板会生成以下应用程序:
```
use color_eyre::Result;
use crossterm::event::{self, Event};
use ratatui::{DefaultTerminal, Frame};
fn main() -> Result<()> {
color_eyre::install()?;
let terminal = ratatui::init();
let result = run(terminal);
ratatui::restore();
result
}
fn run(mut terminal: DefaultTerminal) -> Result<()> {
loop {
terminal.draw(render)?;
if matches!(event::read()?, Event::Key(_)) {
break Ok(());
}
}
}
fn render(frame: &mut Frame) {
frame.render_widget("hello world", frame.area());
}
```
## 文档
- [Docs] - docs.rs 上该库的完整 API 文档。
- [Ratatui Website] - 解释库的概念并提供逐步教程。
- [Ratatui Forum] - 一个提问和讨论该库的地方。
- [Widget Examples] - 演示如何使用该库的示例集合。
- [App Examples] - 演示如何构建应用程序的更复杂示例集合。
- [ARCHITECTURE.md] - 解释 crate 组织结构和模块化工作区结构。
- [Changelog] - 由 [git-cliff] 利用 [Conventional Commits] 生成。
- [Breaking Changes] - 库中的重大变更列表。
您还可以观看 [EuroRust 2024 talk] 以了解 Ratatui 的常见概念以及用它能够构建什么。
## 模板
如果您希望快速入门,可以使用 [`cargo-generate`] 从
[templates] 仓库中选择一个可用的模板:
```
cargo generate ratatui/templates
```
## 基于 Ratatui 构建
[][awesome-ratatui]
查看网站的 [showcase] 部分,或 [awesome-ratatui] 仓库,获取使用 Ratatui 构建的精选
应用和库列表!
## 替代方案
- [Cursive](https://crates.io/crates/cursive) - 一个基于 ncurses 的 TUI 库。
- [iocraft](https://crates.io/crates/iocraft) - 一个声明式 TUI 库。
## 许可证
该项目基于 [MIT License][License] 授权。
标签:CLI, Crate, Crossterm, Dashboard, Ratatui, Rust, Termion, TUI, WiFi技术, 可视化界面, 后端开发, 开发框架, 开源库, 搜索引擎爬虫, 文本界面, 终端用户界面, 编程, 网络流量审计