Files
bun.sh/docs/runtime/bun-apis.mdx
2025-11-05 11:14:21 -08:00

60 lines
14 KiB
Plaintext

---
title: "Bun APIs"
description: "Overview of Bun's native APIs available on the Bun global object and built-in modules"
mode: center
---
Bun implements a set of native APIs on the `Bun` global object and through a number of built-in modules. These APIs are heavily optimized and represent the canonical "Bun-native" way to implement some common functionality.
Bun strives to implement standard Web APIs wherever possible. Bun introduces new APIs primarily for server-side tasks where no standard exists, such as file I/O and starting an HTTP server. In these cases, Bun's approach still builds atop standard APIs like `Blob`, `URL`, and `Request`.
```ts server.ts icon="/icons/typescript.svg"
Bun.serve({
fetch(req: Request) {
return new Response("Success!");
},
});
```
Click the link in the right column to jump to the associated documentation.
| Topic | APIs |
| -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| HTTP Server | [`Bun.serve`](/runtime/http/server) |
| Shell | [`$`](/runtime/shell) |
| Bundler | [`Bun.build`](/bundler) |
| File I/O | [`Bun.file`](/runtime/file-io#reading-files-bun-file), [`Bun.write`](/runtime/file-io#writing-files-bun-write), `Bun.stdin`, `Bun.stdout`, `Bun.stderr` |
| Child Processes | [`Bun.spawn`](/runtime/child-process#spawn-a-process-bun-spawn), [`Bun.spawnSync`](/runtime/child-process#blocking-api-bun-spawnsync) |
| TCP Sockets | [`Bun.listen`](/runtime/networking/tcp#start-a-server-bun-listen), [`Bun.connect`](/runtime/networking/tcp#start-a-server-bun-listen) |
| UDP Sockets | [`Bun.udpSocket`](/runtime/networking/udp) |
| WebSockets | `new WebSocket()` (client), [`Bun.serve`](/runtime/http/websockets) (server) |
| Transpiler | [`Bun.Transpiler`](/runtime/transpiler) |
| Routing | [`Bun.FileSystemRouter`](/runtime/file-system-router) |
| Streaming HTML | [`HTMLRewriter`](/runtime/html-rewriter) |
| Hashing | [`Bun.password`](/runtime/hashing#bun-password), [`Bun.hash`](/runtime/hashing#bun-hash), [`Bun.CryptoHasher`](/runtime/hashing#bun-cryptohasher), `Bun.sha` |
| SQLite | [`bun:sqlite`](/runtime/sqlite) |
| PostgreSQL Client | [`Bun.SQL`](/runtime/sql), `Bun.sql` |
| Redis (Valkey) Client | [`Bun.RedisClient`](/runtime/redis), `Bun.redis` |
| FFI (Foreign Function Interface) | [`bun:ffi`](/runtime/ffi) |
| DNS | [`Bun.dns.lookup`](/runtime/networking/dns), `Bun.dns.prefetch`, `Bun.dns.getCacheStats` |
| Testing | [`bun:test`](/test) |
| Workers | [`new Worker()`](/runtime/workers) |
| Module Loaders | [`Bun.plugin`](/bundler/plugins) |
| Glob | [`Bun.Glob`](/runtime/glob) |
| Cookies | [`Bun.Cookie`](/runtime/cookies), [`Bun.CookieMap`](/runtime/cookies) |
| Node-API | [`Node-API`](/runtime/node-api) |
| `import.meta` | [`import.meta`](/runtime/module-resolution#import-meta) |
| Utilities | [`Bun.version`](/runtime/utils#bun-version), [`Bun.revision`](/runtime/utils#bun-revision), [`Bun.env`](/runtime/utils#bun-env), [`Bun.main`](/runtime/utils#bun-main) |
| Sleep & Timing | [`Bun.sleep()`](/runtime/utils#bun-sleep), [`Bun.sleepSync()`](/runtime/utils#bun-sleepsync), [`Bun.nanoseconds()`](/runtime/utils#bun-nanoseconds) |
| Random & UUID | [`Bun.randomUUIDv7()`](/runtime/utils#bun-randomuuidv7) |
| System & Environment | [`Bun.which()`](/runtime/utils#bun-which) |
| Comparison & Inspection | [`Bun.peek()`](/runtime/utils#bun-peek), [`Bun.deepEquals()`](/runtime/utils#bun-deepequals), `Bun.deepMatch`, [`Bun.inspect()`](/runtime/utils#bun-inspect) |
| String & Text Processing | [`Bun.escapeHTML()`](/runtime/utils#bun-escapehtml), [`Bun.stringWidth()`](/runtime/utils#bun-stringwidth), `Bun.indexOfLine` |
| URL & Path Utilities | [`Bun.fileURLToPath()`](/runtime/utils#bun-fileurltopath), [`Bun.pathToFileURL()`](/runtime/utils#bun-pathtofileurl) |
| Compression | [`Bun.gzipSync()`](/runtime/utils#bun-gzipsync), [`Bun.gunzipSync()`](/runtime/utils#bun-gunzipsync), [`Bun.deflateSync()`](/runtime/utils#bun-deflatesync), [`Bun.inflateSync()`](/runtime/utils#bun-inflatesync), `Bun.zstdCompressSync()`, `Bun.zstdDecompressSync()`, `Bun.zstdCompress()`, `Bun.zstdDecompress()` |
| Stream Processing | [`Bun.readableStreamTo*()`](/runtime/utils#bun-readablestreamto), `Bun.readableStreamToBytes()`, `Bun.readableStreamToBlob()`, `Bun.readableStreamToFormData()`, `Bun.readableStreamToJSON()`, `Bun.readableStreamToArray()` |
| Memory & Buffer Management | `Bun.ArrayBufferSink`, `Bun.allocUnsafe`, `Bun.concatArrayBuffers` |
| Module Resolution | [`Bun.resolveSync()`](/runtime/utils#bun-resolvesync) |
| Parsing & Formatting | [`Bun.semver`](/runtime/semver), `Bun.TOML.parse`, [`Bun.color`](/runtime/color) |
| Low-level / Internals | `Bun.mmap`, `Bun.gc`, `Bun.generateHeapSnapshot`, [`bun:jsc`](https://bun.com/reference/bun/jsc) |