mirror of
https://github.com/oven-sh/bun
synced 2026-02-02 15:08:46 +00:00
60 lines
14 KiB
Plaintext
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) |
|