Runtime
Bundler
Package Manager
Test Runner
Guides
Reference
Blog
Install Bun
Guides HTTP & Networking

fetch with unix domain sockets in Bun

In Bun, fetch() can send HTTP requests over a unix domain socket with the unix option.

fetch-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 the local file path to a unix domain socket. fetch() sends the request over that socket instead of a TCP connection. HTTPS is also supported: use the https:// protocol in the URL instead of http://.

To send a POST request to an API endpoint over a unix domain socket:

fetch-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();

On this page

No Headings