Créer un module
Écrire un module est une activité au niveau du code : on travaille depuis les sources et on intervient dans l’orchestrateur. Voici les étapes.
sequenceDiagram
participant M as Module
participant O as Orchestrateur
participant S as SFU
M->>O: ModuleRegistry.Register(name, version, capabilities, grpc_addr)
O-->>M: RegisterResponse(accepted, module_id, heartbeat, config_json)
Note over O,S: wire_hooks_from_store() relie les hooks selon les capacités
S-->>O: hook (on_command / on_media_out / on_lifecycle...)
O->>M: appel gRPC vers le module
M-->>O: Heartbeat (périodique)
Les étapes
Section intitulée « Les étapes »- Définir la capacité. Ajoutez une variante à l’enum
Capabilitydanssdk/traits/src/types.rs(ou utilisezCustom(String)). - Définir le service gRPC. Si le module a besoin de ses propres appels,
ajoutez un fichier
.protodanssdk/proto/proto/; les stubs Rust sont générés à la compilation. - Implémenter le module. Écrivez un binaire autonome (un serveur gRPC) qui respecte le contrat du SDK.
- S’enregistrer. Au démarrage, le module appelle
ModuleRegistry.Registeren déclarant son nom, sa version, ses capacités et son adresse gRPC. Il doit figurer dans la liste autorisée (VUISIO_MODULES_ENABLED), puis émet un battement de cœur (heartbeat) périodique. - Câbler les hooks. Dans
bin/vuisio/src/modules.rs(wire_hooks_from_store()), reliez la capacité du module aux hooks du SFU : l’orchestrateur découvre le module et crée son client gRPC, puis route les hooks pertinents vers lui. - Interface optionnelle. Un module peut contribuer une interface en
déposant un bundle dans
modules/<nom>/ui/dist/; l’orchestrateur l’expose via son API de modules.
Démarrer avec un assistant IA
Section intitulée « Démarrer avec un assistant IA »Si vous développez avec un assistant de code (par exemple Claude Code), vous
pouvez lui donner le contexte du projet d’un seul coup. Téléchargez le fichier
ci-dessous et placez-le à la racine de votre copie du dépôt, sous le nom
CLAUDE.md : il résume l’architecture, le SDK, les quatre hooks, le flux
d’enregistrement et les endroits du code à consulter.
Télécharger le CLAUDE.md de développement de module
Ce fichier prêt à l’emploi vous évite de reconstituer ce contexte à la main.