Ir al contenido principal

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.

Diseñ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