Rust dans HCR
Rust, du rejeu côté serveur au micrologiciel du robot
HCR utilise Rust à la jonction des règles, du rejeu, de l’état du protocole et du contrôle matériel validé. L’interface reste en React et Blockly ; Rust exécute le service et la passerelle embarquée.
Architecture technique
Deux environnements Rust, deux contraintes de déploiement
Le service de notation utilise le contrat additif hcr.v1 et un rejeu faisant autorité. La passerelle no_std ESP8266 actuelle exécute une API HTTP/JSON bornée ; MQTT et CBOR restent prévus.
Rust · MQTT over WebSocket · HTTP binding
Service
Rejoue les programmes côté serveur, exécute la banque adaptative et gère les échéances et classements des manches.
hcr-backend
hcr.v1 · JSON and CBOR
Protocole
Chaque message utilise une enveloppe et est corrélé par ULID. Les versions mineures ne font qu’ajouter des champs ; les récepteurs ignorent ce qu’ils ne reconnaissent pas au lieu d’échouer.
hcr-backend/schema
Rust (no_std) · ESP8266 · Arduino C++ as a hardware library
Matériel
Sur le bras physique à cinq servomoteurs, Rust gère le démarrage, le routage, HTTP/JSON et l’état des servos ; C++ reste derrière une ABI C orientée octets. MQTT n’est pas encore implémenté.
hcr-fw
Open source
L’écosystème Rust Hotaru derrière HCR
HCR publie son crate de service backend sur crates.io et construit ses couches de service et de protocole embarqué avec Hotaru. Découvrez le crate, le site du framework, le dépôt principal et l’implémentation MQTT maintenue séparément.
Crate HCR sur crates.io
hcr
Le cœur publié du service backend HCR pour l’accès au catalogue, le rejeu faisant autorité, les sessions adaptatives et l’intégration HTTP facultative avec Hotaru.
crates.io/crates/hcrSite du framework
hotaru.rs
La présentation multilingue officielle de Hotaru, un petit framework Rust orienté protocole dont le cœur est prêt pour no_std.
hotaru.rs/Cœur et HTTP sur GitHub
Hotaru
Le cœur indépendant du protocole, les adaptateurs d’exécution, la pile HTTP, le routage et les outils de points d’accès de l’écosystème Hotaru.
github.com/Field-of-Dream-Studio/hotaruMQTT et broker sur GitHub
Hotaru MQTT
L’implémentation distincte du client et du broker MQTT. HCR utilise actuellement HTTP ; MQTT reste prévu pour les appareils et l’application.
github.com/fds-pmine/hotaru_mqttConception
Rust gère la logique ; C++ sert de bibliothèque matérielle
La dépendance est unidirectionnelle. Un seul crate déclare les fonctions matérielles importées et la frontière ne transporte que des octets, jamais de chaînes Arduino, d’objets C++, de routes, de JSON ou d’état applicatif.
Rust prend en charge
- Politique de démarrage et exécuteur coopératif
- Routage et protocole Hotaru
- Analyse et réponses HTTP
- Validation et état des servos
C++ gère
- Horloges, masquage des interruptions, watchdog, redémarrage, tas, aléatoire et liaison série
- Modes point d’accès et station Wi-Fi, poignées TCP et UDP brutes
- Poignées DNS captif et SPIFFS
- GPIO, PWM, écriture des impulsions de servo et écriture OTA brute
Rust
Ce que signifie Rust dans HCR
HCR utilise Rust là où il faut un rejeu déterministe, des types de protocole explicites, une concurrence maîtrisée et une frontière embarquée étroite. C’est un choix d’architecture concret, pas l’affirmation que tout HCR est écrit en Rust.
L’interface du navigateur est conçue avec React et TypeScript. HCR est un projet indépendant, sans affiliation ni approbation du Rust Project ou de la Rust Foundation.
Matériel