Bun 在 Bun 全局對象上和通過一些內置模塊實現了一組原生 API。這些 API 經過高度優化,代表了實現某些常見功能的規范"Bun 原生"方式。
Bun 致力於在可能的情況下實現標准 Web API。Bun 主要在沒有標准存在的服務器端任務中引入新 API,例如文件 I/O 和啟動 HTTP 服務器。在這些情況下,Bun 的方法仍然建立在標准 API 之上,如 Blob、URL 和 Request。
ts
Bun.serve({
fetch(req: Request) {
return new Response("Success!");
},
});點擊右欄中的鏈接跳轉到相關文檔。
| 主題 | API |
|---|---|
| HTTP 服務器 | Bun.serve |
| Shell | $ |
| 打包器 | Bun.build |
| 文件 I/O | Bun.file, Bun.write, Bun.stdin, Bun.stdout, Bun.stderr |
| 子進程 | Bun.spawn, Bun.spawnSync |
| TCP 套接字 | Bun.listen, Bun.connect |
| UDP 套接字 | Bun.udpSocket |
| WebSockets | new WebSocket() (客戶端), Bun.serve (服務器) |
| 轉譯器 | Bun.Transpiler |
| 路由 | Bun.FileSystemRouter |
| 流式 HTML | HTMLRewriter |
| 哈希 | Bun.password, Bun.hash, Bun.CryptoHasher, Bun.sha |
| SQLite | bun:sqlite |
| PostgreSQL 客戶端 | Bun.SQL, Bun.sql |
| Redis (Valkey) 客戶端 | Bun.RedisClient, Bun.redis |
| FFI (外部函數接口) | bun:ffi |
| DNS | Bun.dns.lookup, Bun.dns.prefetch, Bun.dns.getCacheStats |
| 測試 | bun:test |
| Workers | new Worker() |
| 模塊加載器 | Bun.plugin |
| Glob | Bun.Glob |
| Cookies | Bun.Cookie, Bun.CookieMap |
| Node-API | Node-API |
import.meta | import.meta |
| 工具函數 | Bun.version, Bun.revision, Bun.env, Bun.main |
| 睡眠與計時 | Bun.sleep(), Bun.sleepSync(), Bun.nanoseconds() |
| 隨機與 UUID | Bun.randomUUIDv7() |
| 系統與環境 | Bun.which() |
| 比較與檢查 | Bun.peek(), Bun.deepEquals(), Bun.deepMatch, Bun.inspect() |
| 字符串與文本處理 | Bun.escapeHTML(), Bun.stringWidth(), Bun.indexOfLine |
| URL 與路徑工具 | Bun.fileURLToPath(), Bun.pathToFileURL() |
| 壓縮 | Bun.gzipSync(), Bun.gunzipSync(), Bun.deflateSync(), Bun.inflateSync(), Bun.zstdCompressSync(), Bun.zstdDecompressSync(), Bun.zstdCompress(), Bun.zstdDecompress() |
| 流處理 | Bun.readableStreamTo*(), Bun.readableStreamToBytes(), Bun.readableStreamToBlob(), Bun.readableStreamToFormData(), Bun.readableStreamToJSON(), Bun.readableStreamToArray() |
| 內存與緩沖區管理 | Bun.ArrayBufferSink, Bun.allocUnsafe, Bun.concatArrayBuffers |
| 模塊解析 | Bun.resolveSync() |
| 解析與格式化 | Bun.semver, Bun.TOML.parse, Bun.color |
| 底層/內部 | Bun.mmap, Bun.gc, Bun.generateHeapSnapshot, bun:jsc |