HyperCMD Vibe 项目

用普通 HTML 写响应式终端界面,状态与逻辑留在 Rust:fusor 生态的终端渲染框架

项目简介

HyperCMD(fusor-rs/hypercmd)是一个用普通 HTML 编写响应式命令行界面的终端渲染框架,属于 fusor 生态的终端后端。开发者把界面写成 HTML 文件,把状态与逻辑留在 Rust 里,框架负责把模板编译、排布到终端单元格、处理键盘事件并保持屏幕同步。它瞄准的是传统终端 UI 开发中“手写控件树、宏里嵌标记语言”的痛点,让界面回归熟悉的标签写法,同时保留 Rust 的类型检查与性能。项目目前处于 0.1 版本的早期阶段,定位为实验性软件,API 仍会调整,暂不建议直接用于生产环境。

核心功能

  1. HTML 即界面:组件用原生标签书写,文本、属性、条件、列表、路由与事件都通过 Rust 表达式绑定,无需在代码里手拼控件树。
  2. 信号驱动刷新:绑定会追踪自己读取的信号,信号变化时只重跑相关节点,画面真正改变时才排版并绘制下一帧,避免整屏重绘。
  3. 终端版 CSS:支持一套有边界的样式子集,包括 flex 布局、ch 与百分比尺寸、内外边距、间距、颜色、强调样式和可滚动溢出,遇到不支持的标记或样式会在构建阶段直接报错,而不是渲染成别的样子。
  4. 键盘优先交互:焦点顺序、Tab 与方向键导航、多行且按字素簇感知的编辑、括号粘贴、鼠标滚动与可见焦点环全部内置。
  5. 所有权式资源清理:移除视图时自动销毁监听器、停止任务与定时器,并通知后台工作者取消作业,程序退出、发生 panic 或 Ctrl+Z 挂起时都会把终端恢复原状。
  6. 一份组件两种渲染:同一个 HTML 与 Rust 组件既能编译到终端,也能编译到 fusor 的浏览器渲染器,方便抽成可复用的组件库。
  7. 工程化配套:hypercmd new 生成标准 Cargo 工程并校验构建,hypercmd run 启动应用,hypercmd upgrade 升级命令行工具,交互式命令每天最多检查一次新版本。

技术实现

fusor 的编译器把 HTML 模板与 Rust 源码一起编译,模板里的表达式交由 rustc 做类型检查,编译期就能发现绑定错误,而不是运行时才炸。渲染层把组件树映射到终端单元格:布局计算基于受限的 CSS 子集,绘制前先比对场景变化,只有内容变了才重画,因此长时间驻留的界面开销很低。事件循环以键盘为第一等输入,焦点管理、方向键与 Tab 切换、按字素簇处理的多行编辑、括号粘贴保护和鼠标滚动都由框架承担,开发者不必自己处理转义序列。资源管理依托 Rust 的所有权模型,视图销毁即触发清理,终端状态在退出、panic 与作业控制信号下都能恢复。工程构建由 hypercmd-build 生成过程宏所需的产物,包元数据里声明模板目录与样式文件;安装脚本会下载发行版并校验和,也可以用 cargo install hypercmd-cli 安装,支持 macOS 与 Linux,构建需要 Rust 1.85 及以上版本(经 rustup 安装)。

快速上手

  1. 安装 Rust 1.85 或更高版本(通过 rustup),然后执行 curl -fsSL https://raw.githubusercontent.com/fusor-rs/hypercmd/main/install.sh | sh 安装命令行工具,脚本会校验和并提示把 bin 目录加入 PATH;用 cargo install hypercmd-cli 也可以。
  2. 运行 hypercmd new my-app 创建示例工程,脚本会写入计数器界面并校验能否编译通过。
  3. 进入目录执行 hypercmd run 启动应用,用 Tab 在按钮间移动焦点,回车或空格触发操作,计数随信号更新。
  4. 编辑 ui/app.html 修改界面,编辑 src/main.rs 修改状态与逻辑,改完再次 hypercmd run 即可看到效果。
  5. 在已有 Cargo 工程中集成时,添加 hypercmd、fusor、fusor-components 运行时依赖与 hypercmd-build 构建依赖,并在包元数据中声明模板目录与样式文件。

示例项目

仓库自带文件浏览器(目录树、文本预览、过滤、屏幕路由与后台读取文件系统)、作业检查器(路由、异步视图、定时器、可复用行组件)以及一份同时跑在终端与浏览器里的共享作业控制组件,可直接参考改造。

适用人群

希望用 Web 技术栈思维编写终端工具的 Rust 开发者、需要为命令行程序构建交互式界面的工具作者、喜欢可视化调试与运维控制台的工程师,以及想探索 HTML 与 Rust 混合编译模式的前端转后端开发者。

官方链接

https://github.com/fusor-rs/hypercmd

团队信息

由 AI 猎手自动发现

评论与建议

0 条评论