我们正在使用 Rust 构建具有富文本用户界面 (TUI) 的命令行应用程序。我们希望将终端作为生产力的地方,并为它构建各种很棒的应用程序。我们正在寻找代码的贡献者和反馈。
首先,我们不只是构建一个应用程序,而是构建一个库,以支持任何类型的丰富 TUI 开发,其中包含一个转折:采用非常适合前端移动和 Web 开发世界的概念,并为 TUI 重新构想它们和锈。
采用 React、JSX、CSS 和 Redux 之类的东西,但让一切都异步(它们可以通过 Tokio 并行和并发运行)。
即使是运行主事件循环的线程也不会阻塞,因为它是异步的。
使用 proc 宏创建 DSL 来实现 CSS 和 JSX。
您现在就可以开始使用这个库来构建 TUI 应用程序 - r3bl_rs_utils crate
其次,我们希望构建应用程序来提高开发人员的生产力和工作流程。
这里的想法不是在 Rust 中重建 tmux(将单独的进程 mux'd 到单个终端窗口上)。相反,它是构建一组集成的“应用程序”(或“任务”),它们在呈现到一个终端窗口的同一进程中运行。
在这个终端窗口内部,我们可以实现“app”切换、路由、平铺布局、堆叠布局等,这样我们就可以管理很多在同一个进程中运行的 TUI 应用(它们是紧密集成的),在同一个窗口中。所以你可以想象所有这些“应用程序”都有共享的应用程序状态(即在 Redux 存储中)。每个“应用程序”也可能有自己的 Redux 商店。
以下是我们要构建的“应用程序”类型的一些示例:
带语法高亮的多用户文本编辑器
与 github 问题的集成
带有日历、电子邮件、联系人 API 的集成
到目前为止,我们已经构建了以下内容:
r3bl_rs_utils(库):https ://crates.io/crates/r3bl_rs_utils/#tui
r3bl-cmdr(应用程序套件):https ://crates.io/crates/r3bl-cmdr
Documentation:Rust | developerlife.com https://developerlife.com/category/Rust/)
发布了SDF Viewer App](https://github.com/Yeicor/sdf-viewer) 1.0.0 版!它允许通过代码设计 3D 模型,应用程序实时渲染和自定义,在更改代码后尽快刷新。我用它来设计用于 3D 打印的对象,但它可以用于任何 3D 建模任务。阅读上面链接的 README 以获得更多信息。
主要功能是高性能渲染、跨平台支持(包括 Web),以及与任何可以编译为 WebAssembly 的语言/库的直接集成(已经为 Rust 和 Go 编写了集成)。可以使用此链接在任何浏览器上测试该应用程序。您还可以在此处和此处查看预先录制的演示。
https://yeicor.github.io/sdf-viewer/?envdark
我是 Rust 和 proc 宏的忠实粉丝。在 Rust 中创建 DSL 也很棒。当我一直在研究这些东西时,我一直在写文章以获取知识并在这里分享它们,希望它也能造福其他人。
https://developerlife.com/2022/08/04/rust-dsl-part-1/
https://developerlife.com/2022/03/30/rust-proc-macro/
以下是我写的关于其他 Rust 主题的其他文章:
Redux 和 Rust:https ://developerlife.com/2022/03/12/rust-redux/
Rust 和 Tokio:https ://developerlife.com/2022/03/12/rust-tokio/
其他:https ://developerlife.com/category/Rust/
From 日报小组 时光
社区学习交流平台订阅:
Rustcc 论坛:支持 rss
微信公众号:Rust 语言中文社区