#用户界面 #TUI #命令行界面 #语法高亮 #生产力 #辅助工具 #应用程序

r3bl_rs_utils_core

为 r3bl_tui 和 r3bl_tuify 插件提供辅助功能的插件。在 https://crates.io/crates/r3bl_rs_utils 的工作空间中使用。

35 个版本

0.9.14 2024 年 8 月 13 日
0.9.13 2024 年 4 月 16 日
0.9.12 2024 年 1 月 7 日
0.9.10 2023 年 12 月 23 日
0.7.12 2022 年 7 月 7 日

#248文本编辑器

Download history 4322/week @ 2024-05-04 2960/week @ 2024-05-11 3051/week @ 2024-05-18 3560/week @ 2024-05-25 2720/week @ 2024-06-01 2896/week @ 2024-06-08 3275/week @ 2024-06-15 4013/week @ 2024-06-22 3810/week @ 2024-06-29 3987/week @ 2024-07-06 2958/week @ 2024-07-13 2565/week @ 2024-07-20 2317/week @ 2024-07-27 1855/week @ 2024-08-03 1838/week @ 2024-08-10 1237/week @ 2024-08-17

7,741 每月下载次数
用于 10 个插件 (9 个直接使用)

Apache-2.0

190KB
3K SLoC

r3bl_rs_utils_core

上下文

R3BL TUI 开发

我们正在努力构建在 Rust 中具有丰富文本用户界面 (TUI) 的命令行应用程序。我们希望充分利用终端作为生产力场所,并为它构建各种出色的应用程序。

  1. 🔮 我们不仅仅构建一个应用程序,而是在构建一个库,以支持各种丰富 TUI 开发,并有所创新:将前端移动和 Web 开发世界中工作得非常好的概念重新构想为 TUI 和 Rust。

    • 例如 React、JSX、CSS 和 Redux,但使所有内容都是异步的(它们可以通过 Tokio 并行和并发运行)。
    • 甚至运行主事件循环的线程也不会阻塞,因为它也是异步的。
    • 使用过程宏创建 DSL 来实现 CSS 和 JSX。
  2. 🌎 我们正在构建应用程序以增强开发者的生产力和工作流程。

    • 这里的想法不是在 Rust 中重建 tmux(将多个进程复用到单个终端窗口)。而是构建一套集成的“应用程序”(或“任务”),在同一个进程中运行,渲染到单个终端窗口。
    • 在这个终端窗口内部,我们可以实现“应用程序”切换、路由、平铺布局、堆叠布局等,以便我们可以管理在同一个进程中、同一个窗口中运行的许多紧密集成的 TUI 应用程序。因此,你可以想象所有的这些“应用程序”都共享应用程序状态(即 Redux 存储)。每个“应用程序”也可能有自己的 Redux 存储。
    • 以下是我们要构建的“app”类型的一些示例
      1. 支持语法高亮的多人文本编辑器
      2. 与 GitHub issue 集成
      3. 与日历、电子邮件、联系人 API 集成

这些包提供了许多有用的功能,帮助您构建 TUI(文本用户界面)应用,同时还包含了所有 Rustaceans 🦀 都能享受的通用便利性和人体工程学 🎉

  1. 松散耦合且完全异步的 TUI 框架,使得在 Rust 中构建灵感来自 React、Redux、CSS 和 Flexbox 的复杂 TUI(文本用户界面应用)成为可能且简单。
  2. 线程安全且完全异步的 Redux 包(使用 Tokio 在单独的任务中运行订阅者和中间件)。归约函数是顺序执行的。
  3. 许多 声明性宏过程宏(都像函数和 derive 一样工作)以避免为许多常见(且复杂)的任务编写大量样板代码。还有更安静的 ResultError 类型。
  4. 受内存区域启发的 非二叉树数据结构,线程安全并支持并行树遍历。
  5. 实用函数,用于提高 Rust 编程中常用模式的 人体工程学,范围从像为 stdoutstderr 输出着色到懒值持有者。

了解更多关于这个库是如何构建的

🦜 关于这个包是如何制作的,以下是一些文章(在 developerlife.com 上)

  1. https://developerlife.com/2022/02/24/rust-non-binary-tree/
  2. https://developerlife.com/2022/03/12/rust-redux/
  3. https://developerlife.com/2022/03/30/rust-proc-macro/

🦀 您也可以在 developerlife.com 这里 找到所有与 Rust 相关的内容。

依赖于这个包的其他包

以下包是这个包的依赖项

  1. r3bl_rs_utils_macro(过程宏)
  2. r3bl_tui
  3. r3bl_redux
  4. r3bl_rs_utils

由于过程宏需要放在单独的包中 的要求,这种将一个包分解为多个包的做法是必要的。

  1. 将一些代码放在一个单独的包中(r3bl_rs_utils_core),供其他包使用。
  2. 将过程宏放在一个单独的包中(r3bl_rs_utils_macro)。此包还依赖于 r3bl_rs_utils_core 包。
  3. 最后,让“公共”包(r3bl_rs_utils)依赖于其他两个。

为了从“主要”r3bl_rs_utils 包的用户隐藏这种类型的分层,所有的模块都倾向于重新导出,使它们可以从“主要”或顶级包中可用;更多关于此的信息 这里

许可证:Apache-2.0

依赖关系

~12–22MB
~211K SLoC