Используйте Bun.spawn() для создания дочернего процесса. При запуске второго процесса bun можно открыть прямой канал межпроцессного взаимодействия (IPC) между двумя процессами.
NOTE
Этот API совместим только с другими процессами `bun`. Используйте `process.execPath` для получения пути к текущему исполняемому файлу `bun`.const child = Bun.spawn(["bun", "child.ts"], {
ipc(message) {
/**
* Сообщение, полученное от дочернего процесса
**/
},
});Родительский процесс может отправлять сообщения дочернему процессу с помощью метода .send() в возвращённом экземпляре Subprocess. Ссылка на отправляющий дочерний процесс также доступна как второй аргумент в обработчике ipc.
const childProc = Bun.spawn(["bun", "child.ts"], {
ipc(message, childProc) {
/**
* Сообщение, полученное от дочернего процесса
**/
childProc.send("Ответ дочернему процессу");
},
});
childProc.send("Я твой отец"); // Родитель также может отправлять сообщения дочернему процессуТем временем дочерний процесс может отправлять сообщения родителю с помощью process.send() и получать сообщения с process.on("message"). Это тот же API, что используется для child_process.fork() в Node.js.
process.send("Привет от дочернего процесса как строка");
process.send({ message: "Привет от дочернего процесса как объект" });
process.on("message", message => {
// вывести сообщение от родителя
console.log(message);
});Все сообщения сериализуются с помощью JSC serialize API, который поддерживает тот же набор передаваемых типов, что и postMessage и structuredClone, включая строки, типизированные массивы, потоки и объекты.
// отправить строку
process.send("Привет от дочернего процесса как строка");
// отправить объект
process.send({ message: "Привет от дочернего процесса как объект" });Смотрите Документация > API > Дочерние процессы для полной документации.