Rust en HCR
Rust desde la reproducción en servidor hasta el firmware del robot
HCR usa Rust donde convergen políticas, reproducción, estado del protocolo y control de hardware validado. La interfaz sigue siendo React y Blockly; Rust ejecuta el servicio y la pasarela embebida.
Arquitectura
Dos entornos Rust, dos restricciones de despliegue
El servicio de puntuación usa el contrato aditivo hcr.v1 y reproducción autoritativa. La pasarela no_std ESP8266 actual ejecuta una API HTTP/JSON acotada; MQTT y CBOR siguen previstos.
Rust · MQTT over WebSocket · HTTP binding
Service
Reproduce programas en el servidor, ejecuta el banco adaptativo y gestiona los plazos y la clasificación de cada ronda.
hcr-backend
hcr.v1 · JSON and CBOR
Protocolo
Cada mensaje viaja en un sobre y se correlaciona mediante ULID. Las versiones menores solo añaden campos; los receptores descartan lo que no reconocen en vez de fallar.
hcr-backend/schema
Rust (no_std) · ESP8266 · Arduino C++ as a hardware library
Hardware
En el brazo físico de cinco servos, Rust controla el arranque, las rutas, HTTP/JSON y el estado de los servos; C++ queda tras una ABI C orientada a bytes. MQTT aún no está implementado.
hcr-fw
Código abierto
El ecosistema Rust Hotaru detrás de HCR
HCR publica su crate de servicio backend en crates.io y construye sus capas de servicio y protocolo embebido con Hotaru. Explora el crate, el sitio del framework, el repositorio central y la implementación MQTT mantenida por separado.
Crate HCR en crates.io
hcr
El núcleo publicado del servicio backend HCR para acceso al catálogo, reproducción autoritativa, sesiones adaptativas e integración HTTP opcional con Hotaru.
crates.io/crates/hcrSitio del framework
hotaru.rs
La introducción multilingüe oficial a Hotaru, un pequeño framework Rust orientado a protocolos con un núcleo preparado para no_std.
hotaru.rs/Núcleo y HTTP en GitHub
Hotaru
El núcleo neutral al protocolo, los adaptadores de runtime, la pila HTTP, el enrutamiento y las herramientas de endpoints del ecosistema Hotaru.
github.com/Field-of-Dream-Studio/hotaruMQTT y broker en GitHub
Hotaru MQTT
La implementación separada del cliente y broker MQTT. HCR usa HTTP actualmente; MQTT sigue previsto como transporte para dispositivos y la aplicación.
github.com/fds-pmine/hotaru_mqttDiseño
Rust gobierna la lógica; C++ es una biblioteca de hardware
La dependencia va en una sola dirección. Solo un crate declara funciones de hardware importadas y la frontera transporta bytes, no cadenas de Arduino, objetos C++, rutas, JSON ni estado de la aplicación.
Rust se encarga de
- Política de arranque y ejecutor cooperativo
- Enrutamiento y protocolo Hotaru
- Análisis y respuestas HTTP
- Validación y estado de los servos
C++ se encarga de
- Relojes, enmascarado de interrupciones, watchdog, reinicio, heap, aleatoriedad y puerto serie
- Modos de punto de acceso y estación Wi-Fi, y manejadores TCP y UDP sin procesar
- Manejadores de DNS cautivo y SPIFFS
- GPIO, PWM, escritura de pulsos de servo y escritura OTA sin procesar
Rust
Qué significa Rust en HCR
HCR usa Rust donde necesita reproducción determinista, tipos de protocolo explícitos, concurrencia controlada y una frontera embebida estrecha. Es una decisión arquitectónica concreta, no una afirmación de que todo HCR esté escrito en Rust.
La interfaz del navegador está hecha con React y TypeScript. HCR es un proyecto independiente, sin afiliación ni respaldo del Rust Project o la Rust Foundation.
Hardware