Usa Bun.spawn() per eseguire un processo figlio. Quando si esegue un secondo processo bun, puoi aprire un canale di comunicazione inter-processo (IPC) diretto tra i due processi.
NOTE
Questa API è compatibile solo con altri processi `bun`. Usa `process.execPath` per ottenere un percorso all'eseguibile `bun` attualmente in esecuzione.const child = Bun.spawn(["bun", "child.ts"], {
ipc(message) {
/**
* Il messaggio ricevuto dal sottoprocesso
**/
},
});Il processo genitore può inviare messaggi al sottoprocesso usando il metodo .send() sull'istanza Subprocess restituita. Un riferimento al sottoprocesso mittente è anche disponibile come secondo argomento nel gestore ipc.
const childProc = Bun.spawn(["bun", "child.ts"], {
ipc(message, childProc) {
/**
* Il messaggio ricevuto dal sottoprocesso
**/
childProc.send("Rispondi al figlio");
},
});
childProc.send("Sono tuo padre"); // Il genitore può anche inviare messaggi al figlioNel frattempo, il processo figlio può inviare messaggi al suo genitore usando process.send() e ricevere messaggi con process.on("message"). Questa è la stessa API usata per child_process.fork() in Node.js.
process.send("Ciao dal figlio come stringa");
process.send({ message: "Ciao dal figlio come oggetto" });
process.on("message", message => {
// stampa messaggio dal genitore
console.log(message);
});Tutti i messaggi sono serializzati usando l'API serialize di JSC, che consente lo stesso insieme di tipi trasferibili supportati da postMessage e structuredClone, incluse stringhe, array tipizzati, stream e oggetti.
// invia una stringa
process.send("Ciao dal figlio come stringa");
// invia un oggetto
process.send({ message: "Ciao dal figlio come oggetto" });Consulta Docs > API > Child processes per la documentazione completa.