bun-types 1.3.2-canary.20251104T140728 → 1.3.2-canary.20251106T140813

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (312) hide show
  1. package/bun.d.ts +4 -4
  2. package/docs/README.md +28 -0
  3. package/globals.d.ts +0 -1
  4. package/overrides.d.ts +45 -15
  5. package/package.json +1 -1
  6. package/test.d.ts +1 -1
  7. package/docs/api/binary-data.md +0 -1038
  8. package/docs/api/cc.md +0 -197
  9. package/docs/api/color.md +0 -262
  10. package/docs/api/console.md +0 -57
  11. package/docs/api/cookie.md +0 -449
  12. package/docs/api/dns.md +0 -110
  13. package/docs/api/fetch.md +0 -463
  14. package/docs/api/ffi.md +0 -557
  15. package/docs/api/file-io.md +0 -366
  16. package/docs/api/file-system-router.md +0 -112
  17. package/docs/api/file.md +0 -19
  18. package/docs/api/glob.md +0 -178
  19. package/docs/api/globals.md +0 -387
  20. package/docs/api/hashing.md +0 -319
  21. package/docs/api/html-rewriter.md +0 -334
  22. package/docs/api/http.md +0 -1408
  23. package/docs/api/import-meta.md +0 -69
  24. package/docs/api/node-api.md +0 -14
  25. package/docs/api/redis.md +0 -597
  26. package/docs/api/s3.md +0 -850
  27. package/docs/api/secrets.md +0 -319
  28. package/docs/api/semver.md +0 -52
  29. package/docs/api/spawn.md +0 -582
  30. package/docs/api/sql.md +0 -1374
  31. package/docs/api/sqlite.md +0 -694
  32. package/docs/api/streams.md +0 -230
  33. package/docs/api/tcp.md +0 -221
  34. package/docs/api/transpiler.md +0 -276
  35. package/docs/api/udp.md +0 -123
  36. package/docs/api/utils.md +0 -891
  37. package/docs/api/websockets.md +0 -573
  38. package/docs/api/workers.md +0 -322
  39. package/docs/api/yaml.md +0 -668
  40. package/docs/benchmarks.md +0 -120
  41. package/docs/bun-flavored-toml.md +0 -42
  42. package/docs/bundler/css.md +0 -1028
  43. package/docs/bundler/css_modules.md +0 -145
  44. package/docs/bundler/executables.md +0 -626
  45. package/docs/bundler/fullstack.md +0 -418
  46. package/docs/bundler/hmr.md +0 -234
  47. package/docs/bundler/html.md +0 -349
  48. package/docs/bundler/index.md +0 -1735
  49. package/docs/bundler/intro.md +0 -75
  50. package/docs/bundler/loaders.md +0 -410
  51. package/docs/bundler/macros.md +0 -329
  52. package/docs/bundler/plugins.md +0 -449
  53. package/docs/bundler/vs-esbuild.md +0 -1127
  54. package/docs/cli/add.md +0 -173
  55. package/docs/cli/bun-completions.md +0 -3
  56. package/docs/cli/bun-create.md +0 -338
  57. package/docs/cli/bun-install.md +0 -349
  58. package/docs/cli/bun-upgrade.md +0 -39
  59. package/docs/cli/bunx.md +0 -89
  60. package/docs/cli/filter.md +0 -90
  61. package/docs/cli/info.md +0 -65
  62. package/docs/cli/init.md +0 -85
  63. package/docs/cli/install.md +0 -344
  64. package/docs/cli/link.md +0 -40
  65. package/docs/cli/outdated.md +0 -90
  66. package/docs/cli/patch-commit.md +0 -11
  67. package/docs/cli/pm.md +0 -285
  68. package/docs/cli/publish.md +0 -120
  69. package/docs/cli/remove.md +0 -7
  70. package/docs/cli/run.md +0 -261
  71. package/docs/cli/test.md +0 -397
  72. package/docs/cli/unlink.md +0 -9
  73. package/docs/cli/update.md +0 -129
  74. package/docs/cli/why.md +0 -67
  75. package/docs/contributing/upgrading-webkit.md +0 -57
  76. package/docs/ecosystem/elysia.md +0 -24
  77. package/docs/ecosystem/express.md +0 -37
  78. package/docs/ecosystem/hono.md +0 -18
  79. package/docs/ecosystem/react.md +0 -65
  80. package/docs/ecosystem/stric.md +0 -38
  81. package/docs/guides/binary/arraybuffer-to-array.md +0 -27
  82. package/docs/guides/binary/arraybuffer-to-blob.md +0 -24
  83. package/docs/guides/binary/arraybuffer-to-buffer.md +0 -25
  84. package/docs/guides/binary/arraybuffer-to-string.md +0 -15
  85. package/docs/guides/binary/arraybuffer-to-typedarray.md +0 -39
  86. package/docs/guides/binary/blob-to-arraybuffer.md +0 -14
  87. package/docs/guides/binary/blob-to-dataview.md +0 -14
  88. package/docs/guides/binary/blob-to-stream.md +0 -14
  89. package/docs/guides/binary/blob-to-string.md +0 -15
  90. package/docs/guides/binary/blob-to-typedarray.md +0 -14
  91. package/docs/guides/binary/buffer-to-arraybuffer.md +0 -14
  92. package/docs/guides/binary/buffer-to-blob.md +0 -14
  93. package/docs/guides/binary/buffer-to-readablestream.md +0 -41
  94. package/docs/guides/binary/buffer-to-string.md +0 -25
  95. package/docs/guides/binary/buffer-to-typedarray.md +0 -14
  96. package/docs/guides/binary/dataview-to-string.md +0 -15
  97. package/docs/guides/binary/typedarray-to-arraybuffer.md +0 -25
  98. package/docs/guides/binary/typedarray-to-blob.md +0 -16
  99. package/docs/guides/binary/typedarray-to-buffer.md +0 -14
  100. package/docs/guides/binary/typedarray-to-dataview.md +0 -14
  101. package/docs/guides/binary/typedarray-to-readablestream.md +0 -41
  102. package/docs/guides/binary/typedarray-to-string.md +0 -16
  103. package/docs/guides/deployment/railway.md +0 -157
  104. package/docs/guides/ecosystem/astro.md +0 -72
  105. package/docs/guides/ecosystem/discordjs.md +0 -77
  106. package/docs/guides/ecosystem/docker.md +0 -140
  107. package/docs/guides/ecosystem/drizzle.md +0 -185
  108. package/docs/guides/ecosystem/edgedb.md +0 -228
  109. package/docs/guides/ecosystem/elysia.md +0 -31
  110. package/docs/guides/ecosystem/express.md +0 -40
  111. package/docs/guides/ecosystem/hono.md +0 -39
  112. package/docs/guides/ecosystem/mongoose.md +0 -87
  113. package/docs/guides/ecosystem/neon-drizzle.md +0 -220
  114. package/docs/guides/ecosystem/neon-serverless-postgres.md +0 -55
  115. package/docs/guides/ecosystem/nextjs.md +0 -49
  116. package/docs/guides/ecosystem/nuxt.md +0 -56
  117. package/docs/guides/ecosystem/pm2.md +0 -57
  118. package/docs/guides/ecosystem/prisma.md +0 -141
  119. package/docs/guides/ecosystem/qwik.md +0 -107
  120. package/docs/guides/ecosystem/react.md +0 -50
  121. package/docs/guides/ecosystem/remix.md +0 -78
  122. package/docs/guides/ecosystem/render.md +0 -79
  123. package/docs/guides/ecosystem/sentry.md +0 -52
  124. package/docs/guides/ecosystem/solidstart.md +0 -58
  125. package/docs/guides/ecosystem/ssr-react.md +0 -51
  126. package/docs/guides/ecosystem/stric.md +0 -55
  127. package/docs/guides/ecosystem/sveltekit.md +0 -125
  128. package/docs/guides/ecosystem/systemd.md +0 -113
  129. package/docs/guides/ecosystem/vite.md +0 -71
  130. package/docs/guides/html-rewriter/extract-links.md +0 -68
  131. package/docs/guides/html-rewriter/extract-social-meta.md +0 -93
  132. package/docs/guides/http/cluster.md +0 -66
  133. package/docs/guides/http/fetch-unix.md +0 -33
  134. package/docs/guides/http/fetch.md +0 -24
  135. package/docs/guides/http/file-uploads.md +0 -94
  136. package/docs/guides/http/hot.md +0 -26
  137. package/docs/guides/http/proxy.md +0 -24
  138. package/docs/guides/http/server.md +0 -46
  139. package/docs/guides/http/simple.md +0 -18
  140. package/docs/guides/http/stream-file.md +0 -48
  141. package/docs/guides/http/stream-iterator.md +0 -47
  142. package/docs/guides/http/stream-node-streams-in-bun.md +0 -20
  143. package/docs/guides/http/tls.md +0 -30
  144. package/docs/guides/install/add-dev.md +0 -26
  145. package/docs/guides/install/add-git.md +0 -36
  146. package/docs/guides/install/add-optional.md +0 -25
  147. package/docs/guides/install/add-peer.md +0 -43
  148. package/docs/guides/install/add-tarball.md +0 -33
  149. package/docs/guides/install/add.md +0 -42
  150. package/docs/guides/install/azure-artifacts.md +0 -73
  151. package/docs/guides/install/cicd.md +0 -41
  152. package/docs/guides/install/custom-registry.md +0 -30
  153. package/docs/guides/install/from-npm-install-to-bun-install.md +0 -214
  154. package/docs/guides/install/git-diff-bun-lockfile.md +0 -44
  155. package/docs/guides/install/jfrog-artifactory.md +0 -28
  156. package/docs/guides/install/npm-alias.md +0 -23
  157. package/docs/guides/install/registry-scope.md +0 -38
  158. package/docs/guides/install/trusted.md +0 -46
  159. package/docs/guides/install/workspaces.md +0 -70
  160. package/docs/guides/install/yarnlock.md +0 -44
  161. package/docs/guides/process/argv.md +0 -58
  162. package/docs/guides/process/ctrl-c.md +0 -16
  163. package/docs/guides/process/ipc.md +0 -66
  164. package/docs/guides/process/nanoseconds.md +0 -13
  165. package/docs/guides/process/os-signals.md +0 -39
  166. package/docs/guides/process/spawn-stderr.md +0 -31
  167. package/docs/guides/process/spawn-stdout.md +0 -26
  168. package/docs/guides/process/spawn.md +0 -41
  169. package/docs/guides/process/stdin.md +0 -54
  170. package/docs/guides/read-file/arraybuffer.md +0 -28
  171. package/docs/guides/read-file/buffer.md +0 -19
  172. package/docs/guides/read-file/exists.md +0 -16
  173. package/docs/guides/read-file/json.md +0 -17
  174. package/docs/guides/read-file/mime.md +0 -20
  175. package/docs/guides/read-file/stream.md +0 -26
  176. package/docs/guides/read-file/string.md +0 -22
  177. package/docs/guides/read-file/uint8array.md +0 -21
  178. package/docs/guides/read-file/watch.md +0 -68
  179. package/docs/guides/runtime/build-time-constants.md +0 -293
  180. package/docs/guides/runtime/cicd.md +0 -43
  181. package/docs/guides/runtime/codesign-macos-executable.md +0 -56
  182. package/docs/guides/runtime/define-constant.md +0 -145
  183. package/docs/guides/runtime/delete-directory.md +0 -37
  184. package/docs/guides/runtime/delete-file.md +0 -19
  185. package/docs/guides/runtime/heap-snapshot.md +0 -26
  186. package/docs/guides/runtime/import-html.md +0 -15
  187. package/docs/guides/runtime/import-json.md +0 -44
  188. package/docs/guides/runtime/import-toml.md +0 -30
  189. package/docs/guides/runtime/import-yaml.md +0 -102
  190. package/docs/guides/runtime/read-env.md +0 -32
  191. package/docs/guides/runtime/set-env.md +0 -47
  192. package/docs/guides/runtime/shell.md +0 -40
  193. package/docs/guides/runtime/timezone.md +0 -35
  194. package/docs/guides/runtime/tsconfig-paths.md +0 -29
  195. package/docs/guides/runtime/typescript.md +0 -49
  196. package/docs/guides/runtime/vscode-debugger.md +0 -47
  197. package/docs/guides/runtime/web-debugger.md +0 -82
  198. package/docs/guides/streams/node-readable-to-arraybuffer.md +0 -11
  199. package/docs/guides/streams/node-readable-to-blob.md +0 -11
  200. package/docs/guides/streams/node-readable-to-json.md +0 -12
  201. package/docs/guides/streams/node-readable-to-string.md +0 -12
  202. package/docs/guides/streams/node-readable-to-uint8array.md +0 -11
  203. package/docs/guides/streams/to-array.md +0 -14
  204. package/docs/guides/streams/to-arraybuffer.md +0 -14
  205. package/docs/guides/streams/to-blob.md +0 -14
  206. package/docs/guides/streams/to-buffer.md +0 -15
  207. package/docs/guides/streams/to-json.md +0 -14
  208. package/docs/guides/streams/to-string.md +0 -14
  209. package/docs/guides/streams/to-typedarray.md +0 -22
  210. package/docs/guides/test/bail.md +0 -22
  211. package/docs/guides/test/coverage-threshold.md +0 -60
  212. package/docs/guides/test/coverage.md +0 -44
  213. package/docs/guides/test/happy-dom.md +0 -68
  214. package/docs/guides/test/migrate-from-jest.md +0 -143
  215. package/docs/guides/test/mock-clock.md +0 -48
  216. package/docs/guides/test/mock-functions.md +0 -68
  217. package/docs/guides/test/rerun-each.md +0 -14
  218. package/docs/guides/test/run-tests.md +0 -111
  219. package/docs/guides/test/skip-tests.md +0 -39
  220. package/docs/guides/test/snapshot.md +0 -95
  221. package/docs/guides/test/spy-on.md +0 -46
  222. package/docs/guides/test/svelte-test.md +0 -120
  223. package/docs/guides/test/testing-library.md +0 -92
  224. package/docs/guides/test/timeout.md +0 -15
  225. package/docs/guides/test/todo-tests.md +0 -67
  226. package/docs/guides/test/update-snapshots.md +0 -46
  227. package/docs/guides/test/watch-mode.md +0 -19
  228. package/docs/guides/util/base64.md +0 -15
  229. package/docs/guides/util/deep-equals.md +0 -39
  230. package/docs/guides/util/deflate.md +0 -18
  231. package/docs/guides/util/detect-bun.md +0 -23
  232. package/docs/guides/util/entrypoint.md +0 -17
  233. package/docs/guides/util/escape-html.md +0 -22
  234. package/docs/guides/util/file-url-to-path.md +0 -14
  235. package/docs/guides/util/gzip.md +0 -18
  236. package/docs/guides/util/hash-a-password.md +0 -54
  237. package/docs/guides/util/import-meta-dir.md +0 -13
  238. package/docs/guides/util/import-meta-file.md +0 -13
  239. package/docs/guides/util/import-meta-path.md +0 -13
  240. package/docs/guides/util/javascript-uuid.md +0 -23
  241. package/docs/guides/util/main.md +0 -32
  242. package/docs/guides/util/path-to-file-url.md +0 -14
  243. package/docs/guides/util/sleep.md +0 -22
  244. package/docs/guides/util/version.md +0 -21
  245. package/docs/guides/util/which-path-to-executable-bin.md +0 -15
  246. package/docs/guides/websocket/compression.md +0 -31
  247. package/docs/guides/websocket/context.md +0 -77
  248. package/docs/guides/websocket/pubsub.md +0 -41
  249. package/docs/guides/websocket/simple.md +0 -33
  250. package/docs/guides/write-file/append.md +0 -52
  251. package/docs/guides/write-file/basic.md +0 -44
  252. package/docs/guides/write-file/blob.md +0 -28
  253. package/docs/guides/write-file/cat.md +0 -17
  254. package/docs/guides/write-file/file-cp.md +0 -16
  255. package/docs/guides/write-file/filesink.md +0 -52
  256. package/docs/guides/write-file/response.md +0 -17
  257. package/docs/guides/write-file/stdout.md +0 -21
  258. package/docs/guides/write-file/stream.md +0 -17
  259. package/docs/guides/write-file/unlink.md +0 -16
  260. package/docs/index.md +0 -77
  261. package/docs/install/audit.md +0 -57
  262. package/docs/install/cache.md +0 -59
  263. package/docs/install/catalogs.md +0 -298
  264. package/docs/install/index.md +0 -248
  265. package/docs/install/isolated.md +0 -197
  266. package/docs/install/lifecycle.md +0 -46
  267. package/docs/install/lockfile.md +0 -58
  268. package/docs/install/npmrc.md +0 -105
  269. package/docs/install/overrides.md +0 -73
  270. package/docs/install/patch.md +0 -59
  271. package/docs/install/registries.md +0 -30
  272. package/docs/install/security-scanner-api.md +0 -81
  273. package/docs/install/workspaces.md +0 -114
  274. package/docs/installation.md +0 -327
  275. package/docs/project/asan.md +0 -124
  276. package/docs/project/benchmarking.md +0 -203
  277. package/docs/project/bindgen.md +0 -225
  278. package/docs/project/building-windows.md +0 -162
  279. package/docs/project/contributing.md +0 -347
  280. package/docs/project/internals/build-process-for-ci.md +0 -75
  281. package/docs/project/licensing.md +0 -73
  282. package/docs/project/roadmap.md +0 -87
  283. package/docs/quickstart.md +0 -157
  284. package/docs/runtime/autoimport.md +0 -94
  285. package/docs/runtime/bun-apis.md +0 -207
  286. package/docs/runtime/bunfig.md +0 -772
  287. package/docs/runtime/debugger.md +0 -325
  288. package/docs/runtime/env.md +0 -253
  289. package/docs/runtime/hot.md +0 -145
  290. package/docs/runtime/index.md +0 -312
  291. package/docs/runtime/jsx.md +0 -385
  292. package/docs/runtime/loaders.md +0 -130
  293. package/docs/runtime/modules.md +0 -320
  294. package/docs/runtime/nodejs-apis.md +0 -463
  295. package/docs/runtime/plugins.md +0 -561
  296. package/docs/runtime/shell.md +0 -605
  297. package/docs/runtime/typescript.md +0 -139
  298. package/docs/runtime/web-apis.md +0 -128
  299. package/docs/test/configuration.md +0 -154
  300. package/docs/test/coverage.md +0 -142
  301. package/docs/test/discovery.md +0 -85
  302. package/docs/test/dom.md +0 -75
  303. package/docs/test/examples/concurrent-test-glob.md +0 -132
  304. package/docs/test/hot.md +0 -15
  305. package/docs/test/lifecycle.md +0 -81
  306. package/docs/test/mocks.md +0 -313
  307. package/docs/test/reporters.md +0 -117
  308. package/docs/test/runtime-behavior.md +0 -95
  309. package/docs/test/snapshots.md +0 -68
  310. package/docs/test/time.md +0 -126
  311. package/docs/test/writing.md +0 -825
  312. package/docs/typescript.md +0 -53
@@ -1,87 +0,0 @@
1
- Bun is a project with an incredibly large scope and is still in its early days. Long-term, Bun aims to provide an all-in-one toolkit to replace the complex, fragmented toolchains common today: Node.js, Jest, Webpack, esbuild, Babel, yarn, PostCSS, etc.
2
-
3
- Refer to [Bun's Roadmap](https://github.com/oven-sh/bun/issues/159) on GitHub to learn more about the project's long-term plans and priorities.
4
-
5
- <!--
6
- {% table %}
7
-
8
- - Feature
9
- - Implemented in
10
-
11
- ---
12
-
13
- - Web Streams with HTMLRewriter
14
- - Bun.js
15
-
16
- ---
17
-
18
- - Source Maps (unbundled is supported)
19
- - JS Bundler
20
-
21
- ---
22
-
23
- - Source Maps
24
- - CSS
25
-
26
- ---
27
-
28
- - JavaScript Minifier
29
- - JS Transpiler
30
-
31
- ---
32
-
33
- - CSS Minifier
34
- - CSS
35
-
36
- ---
37
-
38
- - CSS Parser (it only bundles)
39
- - CSS
40
-
41
- ---
42
-
43
- - Tree-shaking
44
- - JavaScript
45
-
46
- ---
47
-
48
- - Tree-shaking
49
- - CSS
50
-
51
- ---
52
-
53
- - [TypeScript Decorators](https://www.typescriptlang.org/docs/handbook/decorators.html)
54
- - TS Transpiler
55
-
56
- ---
57
-
58
- - `@jsxPragma` comments
59
- - JS Transpiler
60
-
61
- ---
62
-
63
- - Sharing `.bun` files
64
- - Bun
65
-
66
- ---
67
-
68
- - Dates & timestamps
69
- - TOML parser
70
-
71
- ---
72
-
73
- - [Hash components for Fast Refresh](https://github.com/oven-sh/bun/issues/18)
74
- - JSX Transpiler
75
-
76
- {% /table %} -->
77
-
78
- <!-- ## Limitations & intended usage
79
-
80
- Today, Bun is mostly focused on Bun.js: the JavaScript runtime.
81
-
82
- While you could use Bun's bundler & transpiler separately to build for browsers or node, Bun doesn't have a minifier or support tree-shaking yet. For production browser builds, you probably should use a tool like esbuild or swc.
83
-
84
- ## Upcoming breaking changes
85
-
86
- - Bun's CLI flags will change to better support Bun as a JavaScript runtime. They were chosen when Bun was just a frontend development tool.
87
- - Bun's bundling format will change to accommodate production browser bundles and on-demand production bundling -->
@@ -1,157 +0,0 @@
1
- Let's write a simple HTTP server using the built-in `Bun.serve` API. First, create a fresh directory.
2
-
3
- ```bash
4
- $ mkdir quickstart
5
- $ cd quickstart
6
- ```
7
-
8
- Run `bun init` to scaffold a new project. It's an interactive tool; for this tutorial, just press `enter` to accept the default answer for each prompt.
9
-
10
- ```bash
11
- $ bun init
12
-
13
- ? Select a project template - Press return to submit.
14
- ❯ Blank
15
- React
16
- Library
17
-
18
- ✓ Select a project template: Blank
19
-
20
- + .gitignore
21
- + index.ts
22
- + tsconfig.json (for editor autocomplete)
23
- + README.md
24
-
25
- To get started, run:
26
-
27
- bun run index.ts
28
-
29
- bun install v1.3.2-canary.20251104T140728
30
-
31
- + @types/bun@1.3.2-canary.20251104T140728
32
- + typescript@5.9.2
33
-
34
- 7 packages installed
35
- ```
36
-
37
- Since our entry point is a `*.ts` file, Bun generates a `tsconfig.json` for you. If you're using plain JavaScript, it will generate a [`jsconfig.json`](https://code.visualstudio.com/docs/languages/jsconfig) instead.
38
-
39
- ## Run a file
40
-
41
- Open `index.ts` and paste the following code snippet, which implements a simple HTTP server with [`Bun.serve`](https://bun.com/docs/api/http).
42
-
43
- ```ts
44
- const server = Bun.serve({
45
- port: 3000,
46
- fetch(req) {
47
- return new Response("Bun!");
48
- },
49
- });
50
-
51
- console.log(`Listening on http://localhost:${server.port} ...`);
52
- ```
53
-
54
- {% details summary="Seeing TypeScript errors on `Bun`?" %}
55
- If you used `bun init`, Bun will have automatically installed Bun's TypeScript declarations and configured your `tsconfig.json`. If you're trying out Bun in an existing project, you may see a type error on the `Bun` global.
56
-
57
- To fix this, first install `@types/bun` as a dev dependency.
58
-
59
- ```sh
60
- $ bun add -d @types/bun
61
- ```
62
-
63
- Then add the following to your `compilerOptions` in `tsconfig.json`:
64
-
65
- ```json#tsconfig.json
66
- {
67
- "compilerOptions": {
68
- "lib": ["ESNext"],
69
- "target": "ESNext",
70
- "module": "Preserve",
71
- "moduleDetection": "force",
72
- "moduleResolution": "bundler",
73
- "allowImportingTsExtensions": true,
74
- "verbatimModuleSyntax": true,
75
- "noEmit": true,
76
- }
77
- }
78
- ```
79
-
80
- {% /details %}
81
-
82
- Run the file from your shell.
83
-
84
- ```bash
85
- $ bun index.ts
86
- Listening on http://localhost:3000 ...
87
- ```
88
-
89
- Visit [http://localhost:3000](http://localhost:3000) to test the server. You should see a simple page that says "Bun!".
90
-
91
- ## Run a script
92
-
93
- Bun can also execute `"scripts"` from your `package.json`. Add the following script:
94
-
95
- ```json-diff
96
- {
97
- "name": "quickstart",
98
- "module": "index.ts",
99
- "type": "module",
100
- "private": true,
101
- + "scripts": {
102
- + "start": "bun run index.ts"
103
- + },
104
- "devDependencies": {
105
- "@types/bun": "latest"
106
- },
107
- "peerDependencies": {
108
- "typescript": "^5"
109
- }
110
- }
111
- ```
112
-
113
- Then run it with `bun run start`.
114
-
115
- ```bash
116
- $ bun run start
117
- $ bun run index.ts
118
- Listening on http://localhost:3000 ...
119
- ```
120
-
121
- {% callout %}
122
- ⚡️ **Performance** — `bun run` is roughly 28x faster than `npm run` (6ms vs 170ms of overhead).
123
- {% /callout %}
124
-
125
- ## Install a package
126
-
127
- Let's make our server a little more interesting by installing a package. First install the `figlet` package and its type declarations. Figlet is a utility for converting strings into ASCII art.
128
-
129
- ```bash
130
- $ bun add figlet
131
- $ bun add -d @types/figlet # TypeScript users only
132
- ```
133
-
134
- Update `index.ts` to use `figlet` in the `fetch` handler.
135
-
136
- ```ts-diff
137
- + import figlet from "figlet";
138
-
139
- const server = Bun.serve({
140
- port: 3000,
141
- fetch(req) {
142
- + const body = figlet.textSync("Bun!");
143
- + return new Response(body);
144
- - return new Response("Bun!");
145
- },
146
- });
147
- ```
148
-
149
- Restart the server and refresh the page. You should see a new ASCII art banner.
150
-
151
- ```txt
152
- ____ _
153
- | __ ) _ _ _ __ | |
154
- | _ \| | | | '_ \| |
155
- | |_) | |_| | | | |_|
156
- |____/ \__,_|_| |_(_)
157
- ```
@@ -1,94 +0,0 @@
1
- If no `node_modules` directory is found in the working directory or higher, Bun will abandon Node.js-style module resolution in favor of the **Bun module resolution algorithm**.
2
-
3
- Under Bun-style module resolution, all imported packages are auto-installed on the fly into a [global module cache](https://bun.com/docs/install/cache) during execution (the same cache used by [`bun install`](https://bun.com/docs/cli/install)).
4
-
5
- ```ts
6
- import { foo } from "foo"; // install `latest` version
7
-
8
- foo();
9
- ```
10
-
11
- The first time you run this script, Bun will auto-install `"foo"` and cache it. The next time you run the script, it will use the cached version.
12
-
13
- ## Version resolution
14
-
15
- To determine which version to install, Bun follows the following algorithm:
16
-
17
- 1. Check for a `bun.lock` file in the project root. If it exists, use the version specified in the lockfile.
18
- 2. Otherwise, scan up the tree for a `package.json` that includes `"foo"` as a dependency. If found, use the specified semver version or version range.
19
- 3. Otherwise, use `latest`.
20
-
21
- ## Cache behavior
22
-
23
- Once a version or version range has been determined, Bun will:
24
-
25
- 1. Check the module cache for a compatible version. If one exists, use it.
26
- 2. When resolving `latest`, Bun will check if `package@latest` has been downloaded and cached in the last _24 hours_. If so, use it.
27
- 3. Otherwise, download and install the appropriate version from the `npm` registry.
28
-
29
- ## Installation
30
-
31
- Packages are installed and cached into `<cache>/<pkg>@<version>`, so multiple versions of the same package can be cached at once. Additionally, a symlink is created under `<cache>/<pkg>/<version>` to make it faster to look up all versions of a package that exist in the cache.
32
-
33
- ## Version specifiers
34
-
35
- This entire resolution algorithm can be short-circuited by specifying a version or version range directly in your import statement.
36
-
37
- ```ts
38
- import { z } from "zod@3.0.0"; // specific version
39
- import { z } from "zod@next"; // npm tag
40
- import { z } from "zod@^3.20.0"; // semver range
41
- ```
42
-
43
- ## Benefits
44
-
45
- This auto-installation approach is useful for a few reasons:
46
-
47
- - **Space efficiency** — Each version of a dependency only exists in one place on disk. This is a huge space and time savings compared to redundant per-project installations.
48
- - **Portability** — To share simple scripts and gists, your source file is _self-contained_. No need to `zip` together a directory containing your code and config files. With version specifiers in `import` statements, even a `package.json` isn't necessary.
49
- - **Convenience** — There's no need to run `npm install` or `bun install` before running a file or script. Just `bun run` it.
50
- - **Backwards compatibility** — Because Bun still respects the versions specified in `package.json` if one exists, you can switch to Bun-style resolution with a single command: `rm -rf node_modules`.
51
-
52
- ## Limitations
53
-
54
- - No Intellisense. TypeScript auto-completion in IDEs relies on the existence of type declaration files inside `node_modules`. We are investigating various solutions to this.
55
- - No [patch-package](https://github.com/ds300/patch-package) support
56
-
57
- <!-- - The implementation details of Bun's install cache will change between versions. Don't think of it as an API. To reliably resolve packages, use Bun's builtin APIs (such as `Bun.resolveSync` or `import.meta.resolve`) instead of relying on the filesystem directly. Bun will likely move to a binary archive format where packages may not correspond to files/folders on disk at all - so if you depend on the filesystem structure instead of the JavaScript API, your code will eventually break. -->
58
-
59
- <!-- ## Customizing behavior
60
-
61
- To prefer locally-installed versions of packages. Instead of checking npm for latest versions, you can pass the `--prefer-offline` flag to prefer locally-installed versions of packages.
62
-
63
- ```bash
64
- $ bun run --prefer-offline my-script.ts
65
- ```
66
-
67
- This will check the install cache for installed versions of packages before checking the npm registry. If no matching version of a package is installed, only then will it check npm for the latest version.
68
-
69
- #### Prefer latest
70
-
71
- To always use the latest version of a package, you can pass the `--prefer-latest` flag.
72
-
73
- ```bash
74
- $ bun run --prefer-latest my-script.ts
75
- ``` -->
76
-
77
- ## FAQ
78
-
79
- {% details summary="How is this different from what pnpm does?" %}
80
-
81
- With pnpm, you have to run `pnpm install`, which creates a `node_modules` folder of symlinks for the runtime to resolve. By contrast, Bun resolves dependencies on the fly when you run a file; there's no need to run any `install` command ahead of time. Bun also doesn't create a `node_modules` folder.
82
-
83
- {% /details %}
84
-
85
- {% details summary="How is this different from Yarn Plug'N'Play does?" %}
86
- With Yarn, you must run `yarn install` before you run a script. By contrast, Bun resolves dependencies on the fly when you run a file; there's no need to run any `install` command ahead of time.
87
-
88
- Yarn Plug'N'Play also uses zip files to store dependencies. This makes dependency loading [slower at runtime](https://twitter.com/jarredsumner/status/1458207919636287490), as random access reads on zip files tend to be slower than the equivalent disk lookup.
89
- {% /details %}
90
-
91
- {% details summary="How is this different from what Deno does?" %}
92
-
93
- Deno requires an `npm:` specifier before each npm `import`, lacks support for import maps via `compilerOptions.paths` in `tsconfig.json`, and has incomplete support for `package.json` settings. Unlike Deno, Bun does not currently support URL imports.
94
- {% /details %}
@@ -1,207 +0,0 @@
1
- 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.
2
-
3
- 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`.
4
-
5
- ```ts
6
- Bun.serve({
7
- fetch(req: Request) {
8
- return new Response("Success!");
9
- },
10
- });
11
- ```
12
-
13
- Click the link in the right column to jump to the associated documentation.
14
-
15
- {% table %}
16
-
17
- - Topic
18
- - APIs
19
-
20
- ---
21
-
22
- - HTTP Server
23
- - [`Bun.serve`](https://bun.com/docs/api/http#bun-serve)
24
-
25
- ---
26
-
27
- - Shell
28
- - [`$`](https://bun.com/docs/runtime/shell)
29
-
30
- ---
31
-
32
- - Bundler
33
- - [`Bun.build`](https://bun.com/docs/bundler)
34
-
35
- ---
36
-
37
- - File I/O
38
- - [`Bun.file`](https://bun.com/docs/api/file-io#reading-files-bun-file), [`Bun.write`](https://bun.com/docs/api/file-io#writing-files-bun-write), `Bun.stdin`, `Bun.stdout`, `Bun.stderr`
39
-
40
- ---
41
-
42
- - Child Processes
43
- - [`Bun.spawn`](https://bun.com/docs/api/spawn#spawn-a-process-bun-spawn), [`Bun.spawnSync`](https://bun.com/docs/api/spawn#blocking-api-bun-spawnsync)
44
-
45
- ---
46
-
47
- - TCP Sockets
48
- - [`Bun.listen`](https://bun.com/docs/api/tcp#start-a-server-bun-listen), [`Bun.connect`](https://bun.com/docs/api/tcp#start-a-server-bun-listen)
49
-
50
- ---
51
-
52
- - UDP Sockets
53
- - [`Bun.udpSocket`](https://bun.com/docs/api/udp)
54
-
55
- ---
56
-
57
- - WebSockets
58
- - `new WebSocket()` (client), [`Bun.serve`](https://bun.com/docs/api/websockets) (server)
59
-
60
- ---
61
-
62
- - Transpiler
63
- - [`Bun.Transpiler`](https://bun.com/docs/api/transpiler)
64
-
65
- ---
66
-
67
- - Routing
68
- - [`Bun.FileSystemRouter`](https://bun.com/docs/api/file-system-router)
69
-
70
- ---
71
-
72
- - Streaming HTML
73
- - [`HTMLRewriter`](https://bun.com/docs/api/html-rewriter)
74
-
75
- ---
76
-
77
- - Hashing
78
- - [`Bun.password`](https://bun.com/docs/api/hashing#bun-password), [`Bun.hash`](https://bun.com/docs/api/hashing#bun-hash), [`Bun.CryptoHasher`](https://bun.com/docs/api/hashing#bun-cryptohasher), `Bun.sha`
79
-
80
- ---
81
-
82
- - SQLite
83
- - [`bun:sqlite`](https://bun.com/docs/api/sqlite)
84
-
85
- ---
86
-
87
- - PostgreSQL Client
88
- - [`Bun.SQL`](https://bun.com/docs/api/sql), `Bun.sql`
89
-
90
- ---
91
-
92
- - Redis (Valkey) Client
93
- - [`Bun.RedisClient`](https://bun.com/docs/api/redis), `Bun.redis`
94
-
95
- ---
96
-
97
- - FFI (Foreign Function Interface)
98
- - [`bun:ffi`](https://bun.com/docs/api/ffi)
99
-
100
- ---
101
-
102
- - DNS
103
- - [`Bun.dns.lookup`](https://bun.com/docs/api/dns), `Bun.dns.prefetch`, `Bun.dns.getCacheStats`
104
-
105
- ---
106
-
107
- - Testing
108
- - [`bun:test`](https://bun.com/docs/cli/test)
109
-
110
- ---
111
-
112
- - Workers
113
- - [`new Worker()`](https://bun.com/docs/api/workers)
114
-
115
- ---
116
-
117
- - Module Loaders
118
- - [`Bun.plugin`](https://bun.com/docs/bundler/plugins)
119
-
120
- ---
121
-
122
- - Glob
123
- - [`Bun.Glob`](https://bun.com/docs/api/glob)
124
-
125
- ---
126
-
127
- - Cookies
128
- - [`Bun.Cookie`](https://bun.com/docs/api/cookie), [`Bun.CookieMap`](https://bun.com/docs/api/cookie)
129
-
130
- ---
131
-
132
- - Node-API
133
- - [`Node-API`](https://bun.com/docs/api/node-api)
134
-
135
- ---
136
-
137
- - `import.meta`
138
- - [`import.meta`](https://bun.com/docs/api/import-meta)
139
-
140
- ---
141
-
142
- - Utilities
143
- - [`Bun.version`](https://bun.com/docs/api/utils#bun-version), [`Bun.revision`](https://bun.com/docs/api/utils#bun-revision), [`Bun.env`](https://bun.com/docs/api/utils#bun-env), [`Bun.main`](https://bun.com/docs/api/utils#bun-main)
144
-
145
- ---
146
-
147
- - Sleep & Timing
148
- - [`Bun.sleep()`](https://bun.com/docs/api/utils#bun-sleep), [`Bun.sleepSync()`](https://bun.com/docs/api/utils#bun-sleepsync), [`Bun.nanoseconds()`](https://bun.com/docs/api/utils#bun-nanoseconds)
149
-
150
- ---
151
-
152
- - Random & UUID
153
- - [`Bun.randomUUIDv7()`](https://bun.com/docs/api/utils#bun-randomuuidv7)
154
-
155
- ---
156
-
157
- - System & Environment
158
- - [`Bun.which()`](https://bun.com/docs/api/utils#bun-which)
159
-
160
- ---
161
-
162
- - Comparison & Inspection
163
- - [`Bun.peek()`](https://bun.com/docs/api/utils#bun-peek), [`Bun.deepEquals()`](https://bun.com/docs/api/utils#bun-deepequals), `Bun.deepMatch`, [`Bun.inspect()`](https://bun.com/docs/api/utils#bun-inspect)
164
-
165
- ---
166
-
167
- - String & Text Processing
168
- - [`Bun.escapeHTML()`](https://bun.com/docs/api/utils#bun-escapehtml), [`Bun.stringWidth()`](https://bun.com/docs/api/utils#bun-stringwidth), `Bun.indexOfLine`
169
-
170
- ---
171
-
172
- - URL & Path Utilities
173
- - [`Bun.fileURLToPath()`](https://bun.com/docs/api/utils#bun-fileurltopath), [`Bun.pathToFileURL()`](https://bun.com/docs/api/utils#bun-pathtofileurl)
174
-
175
- ---
176
-
177
- - Compression
178
- - [`Bun.gzipSync()`](https://bun.com/docs/api/utils#bun-gzipsync), [`Bun.gunzipSync()`](https://bun.com/docs/api/utils#bun-gunzipsync), [`Bun.deflateSync()`](https://bun.com/docs/api/utils#bun-deflatesync), [`Bun.inflateSync()`](https://bun.com/docs/api/utils#bun-inflatesync), `Bun.zstdCompressSync()`, `Bun.zstdDecompressSync()`, `Bun.zstdCompress()`, `Bun.zstdDecompress()`
179
-
180
- ---
181
-
182
- - Stream Processing
183
- - [`Bun.readableStreamTo*()`](https://bun.com/docs/api/utils#bun-readablestreamto), `Bun.readableStreamToBytes()`, `Bun.readableStreamToBlob()`, `Bun.readableStreamToFormData()`, `Bun.readableStreamToJSON()`, `Bun.readableStreamToArray()`
184
-
185
- ---
186
-
187
- - Memory & Buffer Management
188
- - `Bun.ArrayBufferSink`, `Bun.allocUnsafe`, `Bun.concatArrayBuffers`
189
-
190
- ---
191
-
192
- - Module Resolution
193
- - [`Bun.resolveSync()`](https://bun.com/docs/api/utils#bun-resolvesync)
194
-
195
- ---
196
-
197
- - Parsing & Formatting
198
- - [`Bun.semver`](https://bun.com/docs/api/semver), `Bun.TOML.parse`, [`Bun.YAML.parse`](https://bun.com/docs/api/yaml), [`Bun.color`](https://bun.com/docs/api/color)
199
-
200
- ---
201
-
202
- - Low-level / Internals
203
- - `Bun.mmap`, `Bun.gc`, `Bun.generateHeapSnapshot`, [`bun:jsc`](https://bun.com/reference/bun/jsc)
204
-
205
- ---
206
-
207
- {% /table %}