Skip to main content
In Bun, the unix option in fetch() lets you send HTTP requests over a unix domain socket.
/icons/typescript.svgfetch-unix.ts
const unix = '/var/run/docker.sock';

const response = await fetch('http://localhost/info', {unix});

const body = await response.json();
console.log(body); // { ... }

The unix option is a string that specifies the local file path to a unix domain socket. The fetch() function will use the socket to send the request to the server instead of using a TCP network connection. https is also supported by using the https:// protocol in the URL instead of http://. To send a POST request to an API endpoint over a unix domain socket:
/icons/typescript.svgfetch-unix.ts
const response = await fetch('https://hostname/a/path', {
	unix: '/var/run/path/to/unix.sock',
	method: 'POST',
	body: JSON.stringify({message: 'Hello from Bun!'}),
	headers: {
		'Content-Type': 'application/json',
	},
});

const body = await response.json();
I