Use Bun.spawn() para spawnar um processo filho. Ao spawnar um segundo processo bun, você pode abrir um canal de comunicação interprocesso (IPC) direto entre os dois processos.
NOTE
Esta API é compatível apenas com outros processos `bun`. Use `process.execPath` para obter um caminho para o executável `bun` em execução atualmente.const child = Bun.spawn(["bun", "child.ts"], {
ipc(message) {
/**
* A mensagem recebida do subprocesso
**/
},
});O processo pai pode enviar mensagens para o subprocesso usando o método .send() na instância Subprocess retornada. Uma referência ao subprocesso de envio também está disponível como o segundo argumento no manipulador ipc.
const childProc = Bun.spawn(["bun", "child.ts"], {
ipc(message, childProc) {
/**
* A mensagem recebida do subprocesso
**/
childProc.send("Responder ao filho");
},
});
childProc.send("Eu sou seu pai"); // O pai também pode enviar mensagens para o filhoEnquanto isso, o processo filho pode enviar mensagens para seu pai usando process.send() e receber mensagens com process.on("message"). Esta é a mesma API usada para child_process.fork() no Node.js.
process.send("Olá do filho como string");
process.send({ message: "Olá do filho como objeto" });
process.on("message", message => {
// imprimir mensagem do pai
console.log(message);
});Todas as mensagens são serializadas usando a API serialize do JSC, que permite o mesmo conjunto de tipos transferíveis suportados por postMessage e structuredClone, incluindo strings, arrays tipados, streams e objetos.
// enviar uma string
process.send("Olá do filho como string");
// enviar um objeto
process.send({ message: "Olá do filho como objeto" });Veja Docs > API > Child processes para documentação completa.