21 个版本 (5 个破坏性版本)
9.3.2 |
|
---|---|
0.6.2 | 2024年8月15日 |
0.6.1 | 2024年7月24日 |
0.2.2 | 2024年3月28日 |
#827 in 命令行界面
每月下载 1,273 次
在 3 crates 中使用
60KB
1K SLoC
Bevy_ratatui
在 Bevy 应用中使用 Ratatui 的实验。请注意,这个库是明确不稳定的,将在 0.x 版本之间破坏兼容性。
这个(至少一开始)的目标不是在终端中执行任何渲染/3D等,而是看看使用 bevy 概念为应用程序提供多大的帮助。这可能会随着时间的推移而改变。
示例应用程序
此应用程序演示了
- 使用
RatatuiContext
资源将小部件绘制到终端 - ScheduleRunnerPlugin 以运行应用程序循环
- 使用
Event
通信 - 处理
State
以添加在转换时运行的逻辑(例如,在简单的计数器应用程序中从负数变为正数时更改背景颜色)
cargo run --example demo
按键
- 左/右 - 修改计数器(查看当您变负数时会发生什么)
- Q / Esc - 退出
- P - 模拟 panic(测试 color_eyre panic 插件)
兼容的 Bevy 版本
bevy | bevy_ratatui |
---|---|
0.14 | 0.6 |
0.13 | 0.5 |
关于如何推进此项目的想法
- 将 Ratatui 的
Terminal
重新编写为 Bevy 子应用程序。这可能允许在主应用程序继续运行的同时进行渲染 - 考虑如何处理布局。Bevy 有大量与此相关的代码,可能可以将其结合
- 将 Crossterm 事件转换为 bevy 标准
- 与其他 bevy/crossterm/ratatui 库合作
- https://github.com/cxreiff/bevy_rat - 看起来是最新的/最新的 crate,有一些相当相似的想法。有一些将图像渲染到屏幕上的内容(例如,旋转的 3D 立方体)。
- https://github.com/octotep/bevy_crossterm - Crossterm 插件,用于 bevy 游戏引擎
- https://github.com/TheEmeraldBee/widgetui - Ratatui 和 Crossterm 的类似 bevy 系统的 widget 系统。这是一个类似 bevy 的方法(不是实际的 bevy)并且有一些关于 Widgets 的不错想法
- https://github.com/AlephAlpha/roguelike-bevy-crossterm - 采用定义自定义运行器来处理事件循环的方法,以制作Roguelike游戏
- https://github.com/Mimea005/bevyterm - 使用crossterm的bevy终端渲染器,不使用像bevy_crossterm这样的自定义运行器。
- https://github.com/gold-silver-copper/bevy_ratatui - 这种想法的相反。它使用bevy作为后端运行Ratatui应用,以在图形窗口/网页目标上绘制
- https://github.com/gold-silver-copper/ratatui_egui_wasm - 前一个项目的延续,使用egui后端将ratatui应用到网页上
- https://github.com/sstelfox/bevy_tui - tui-rs / bevy看起来已经停止更新(最后提交于2023年1月)
之前的bevy_ratatui包
之前有一个使用这个名称的包,后来迁移到了 ratatui_egui_wasm。这是一个也是egui小部件的ratatui后端。使用WASM在网络上部署或在bevy、macroquad或eframe中本地分发。演示在 https://gold-silver-copper.github.io/
许可证
版权所有 (c) Josh McKinney
该项目受以下任一许可证的许可
- Apache License, Version 2.0 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
由您选择。
贡献
除非您明确表示,否则任何有意提交以包含在您的工作中的贡献,根据Apache-2.0许可证的定义,应如上所述双重许可,无需任何额外的条款或条件。
请参阅 CONTRIBUTING.md。
依赖项
~27–41MB
~672K SLoC