Utilisez Bun.spawn() pour démarrer un processus enfant. Lors du démarrage d'un second processus bun, vous pouvez ouvrir un canal de communication inter-processus (IPC) direct entre les deux processus.
NOTE
Cette API est uniquement compatible avec d'autres processus `bun`. Utilisez `process.execPath` pour obtenir le chemin de l'exécutable `bun` en cours d'exécution.const child = Bun.spawn(["bun", "child.ts"], {
ipc(message) {
/**
* Le message reçu du sous-processus
**/
},
});Le processus parent peut envoyer des messages au sous-processus en utilisant la méthode .send() sur l'instance Subprocess retournée. Une référence au sous-processus envoyeur est également disponible comme deuxième argument dans le gestionnaire ipc.
const childProc = Bun.spawn(["bun", "child.ts"], {
ipc(message, childProc) {
/**
* Le message reçu du sous-processus
**/
childProc.send("Répondre à l'enfant");
},
});
childProc.send("Je suis ton père"); // Le parent peut aussi envoyer des messages à l'enfantPendant ce temps, le processus enfant peut envoyer des messages à son parent en utilisant process.send() et recevoir des messages avec process.on("message"). C'est la même API utilisée pour child_process.fork() dans Node.js.
process.send("Bonjour depuis l'enfant en tant que chaîne");
process.send({ message: "Bonjour depuis l'enfant en tant qu'objet" });
process.on("message", message => {
// afficher le message du parent
console.log(message);
});Tous les messages sont sérialisés en utilisant l'API serialize de JSC, qui permet le même ensemble de types transférables pris en charge par postMessage et structuredClone, y compris les chaînes, les tableaux typés, les flux et les objets.
// envoyer une chaîne
process.send("Bonjour depuis l'enfant en tant que chaîne");
// envoyer un objet
process.send({ message: "Bonjour depuis l'enfant en tant qu'objet" });Consultez Docs > API > Processus enfants pour la documentation complète.