• 【Rust日报】2022-08-07 专注于开发人员生产力的 R3BL TUI 库和应用程序


    专注于开发人员生产力的 R3BL TUI 库和应用程序

    我们正在使用 Rust 构建具有富文本用户界面 (TUI) 的命令行应用程序。我们希望将终端作为生产力的地方,并为它构建各种很棒的应用程序。我们正在寻找代码的贡献者和反馈🦀。

    🔮 首先,我们不只是构建一个应用程序,而是构建一个库,以支持任何类型的丰富 TUI 开发,其中包含一个转折:采用非常适合前端移动和 Web 开发世界的概念,并为 TUI 重新构想它们和锈。

    1. 采用 React、JSX、CSS 和 Redux 之类的东西,但让一切都异步(它们可以通过 Tokio 并行和并发运行)。

    2. 即使是运行主事件循环的线程也不会阻塞,因为它是异步的。

    3. 使用 proc 宏创建 DSL 来实现 CSS 和 JSX。

    🚀 您现在就可以开始使用这个库来构建 TUI 应用程序 - r3bl_rs_utils crate

    🌎 其次,我们希望构建应用程序来提高开发人员的生产力和工作流程。

    1. 这里的想法不是在 Rust 中重建 tmux(将单独的进程 mux'd 到单个终端窗口上)。相反,它是构建一组集成的“应用程序”(或“任务”),它们在呈现到一个终端窗口的同一进程中运行。

    2. 在这个终端窗口内部,我们可以实现“app”切换、路由、平铺布局、堆叠布局等,这样我们就可以管理很多在同一个进程中运行的 TUI 应用(它们是紧密集成的),在同一个窗口中。所以你可以想象所有这些“应用程序”都有共享的应用程序状态(即在 Redux 存储中)。每个“应用程序”也可能有自己的 Redux 商店。

    以下是我们要构建的“应用程序”类型的一些示例:

    1. 带语法高亮的多用户文本编辑器

    2. 与 github 问题的集成

    3. 带有日历、电子邮件、联系人 API 的集成

    到目前为止,我们已经构建了以下内容:

    1. r3bl_rs_utils(库):https ://crates.io/crates/r3bl_rs_utils/#tui

    2. r3bl-cmdr(应用程序套件):https ://crates.io/crates/r3bl-cmdr

    3. Documentation:Rust | developerlife.com https://developerlife.com/category/Rust/)

    SDF 查看器:快速且跨平台的符号距离函数 (SDF) 查看器,可轻松与您的 SDF 库集成

    发布了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

    关于 DSL 和 proc 宏的 Rust 教程

    8f2e665f3c0a0409cc2fe87de6317402.png我是 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 语言中文社区

  • 相关阅读:
    Spring框架系列(11) - Spring AOP实现原理详解之Cglib代理实现
    jupyter notebook 运行没有反应
    [QT入门篇]窗口类的应用
    【FPGA零基础学习之旅#14】串口发送字符串
    学会这三款软件,可以轻松完成录音转文字操作
    智慧公厕有多智能?智慧厕所黑科技揭秘
    springboot嵌入式数据库derby初探
    Matlab:使用plot函数绘制数据曲线
    layui2.4.3版本下拉框实现多选
    RCNN、Fast-RCNN、Faster-RCNN介绍
  • 原文地址:https://blog.csdn.net/u012067469/article/details/126239228