--- 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) |