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 |