Skip to main content
Use Bun.spawn() to spawn a child process. When spawning a second bun process, you can open a direct inter-process communication (IPC) channel between the two processes.
To communicate with a Node.js process, set serialization: "json" in Bun.spawn. Use process.execPath to get a path to the currently running bun executable.
parent.ts

The parent process sends messages to the subprocess with the .send() method on the returned Subprocess instance. The ipc handler also receives the subprocess as its second argument.
parent.ts

The child process sends messages to its parent with process.send() and receives messages with process.on("message"). This is the same API used for child_process.fork() in Node.js.
child.ts

By default, messages are serialized with the JSC serialize API, which supports everything structuredClone supports, including strings, typed arrays, and objects. This does not support transferring ownership of objects.
child.ts

See Child processes.