技术架构
两个 Rust 运行时,两种部署限制
评分服务使用可增量扩展的 hcr.v1 契约与权威重放。当前 no_std ESP8266 网关运行有界 HTTP/JSON 舵机 API;MQTT 与 CBOR 仍是规划中的设备路径。
Rust · MQTT over WebSocket · HTTP binding
Service
在服务器端重放程序、运行自适应题库,并负责回合截止时间和排名。
hcr-backend
hcr.v1 · JSON and CBOR
协议
每条消息都使用一个信封,并通过 ULID 关联。次要版本只允许新增字段;接收方会忽略无法识别的内容,而不会因此失败。
hcr-backend/schema
Rust (no_std) · ESP8266 · Arduino C++ as a hardware library
硬件
实体五舵机机械臂由 Rust 管理启动策略、路由、HTTP/JSON 和舵机状态;C++ 仅限于字节型 C ABI 之后。网关尚未实现 MQTT。
hcr-fw
开源
HCR 背后的 Hotaru Rust 生态
HCR 在 crates.io 发布后端服务 crate,并使用 Hotaru 构建服务与嵌入式协议层。可浏览该 crate、框架官网、核心代码库,以及独立维护的 MQTT 实现。
HCR crate(crates.io)
hcr
已发布的 HCR 后端服务核心,提供目录访问、权威重放、自适应会话,以及可选的 Hotaru HTTP 集成。
crates.io/crates/hcr框架官网
hotaru.rs
Hotaru 的官方多语言介绍。它是一个小型、面向协议的 Rust 框架,核心已为 no_std 做好准备。
hotaru.rs/GitHub 上的核心与 HTTP
Hotaru
Hotaru 生态采用的协议中立核心、运行时适配器、HTTP 栈、路由与端点工具。
github.com/Field-of-Dream-Studio/hotaruGitHub 上的 MQTT 与 Broker
Hotaru MQTT
独立的 MQTT 客户端与 Broker 实现。HCR 当前使用 HTTP;MQTT 仍是规划中的设备与应用传输方式。
github.com/fds-pmine/hotaru_mqtt设计
Rust 负责策略;C++ 只作为硬件库
依赖关系只有一个方向。仅有一个 crate 声明外部硬件函数,边界上传递的是字节,而不是 Arduino 字符串、C++ 对象、路由、JSON 或应用状态。
Rust 负责
- 启动策略与协作式执行器
- Hotaru 路由与协议
- HTTP 解析与响应
- 舵机验证与状态
C++ 负责
- 时钟、中断屏蔽、看门狗、重启、堆、随机数、串口
- Wi-Fi 接入点与终端模式、原始 TCP 和 UDP 句柄
- 强制门户 DNS 与 SPIFFS 句柄
- GPIO、PWM、舵机脉冲写入、原始 OTA 写入
Rust
Rust 对 HCR 意味着什么
HCR 在需要确定性重放、明确协议类型、受控并发及精简嵌入式边界的部分使用 Rust。这是具体的架构选择,并不表示 HCR 的每个部分都由 Rust 编写。
浏览器界面使用 React 与 TypeScript 构建。HCR 是独立项目,与 Rust Project 或 Rust Foundation 没有关联,亦未获其背书。
硬件