bun-types 1.3.2-canary.20251106T140813 → 1.3.2

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 (316) hide show
  1. package/bun.d.ts +102 -6
  2. package/docs/bundler/bytecode.mdx +465 -0
  3. package/docs/bundler/css.mdx +1024 -0
  4. package/docs/bundler/esbuild.mdx +253 -0
  5. package/docs/bundler/executables.mdx +535 -0
  6. package/docs/bundler/fullstack.mdx +1064 -0
  7. package/docs/bundler/hot-reloading.mdx +229 -0
  8. package/docs/bundler/html-static.mdx +386 -0
  9. package/docs/bundler/index.mdx +1499 -0
  10. package/docs/bundler/loaders.mdx +356 -0
  11. package/docs/bundler/macros.mdx +328 -0
  12. package/docs/bundler/minifier.mdx +1306 -0
  13. package/docs/bundler/plugins.mdx +411 -0
  14. package/docs/feedback.mdx +85 -0
  15. package/docs/guides/binary/arraybuffer-to-array.mdx +29 -0
  16. package/docs/guides/binary/arraybuffer-to-blob.mdx +26 -0
  17. package/docs/guides/binary/arraybuffer-to-buffer.mdx +27 -0
  18. package/docs/guides/binary/arraybuffer-to-string.mdx +17 -0
  19. package/docs/guides/binary/arraybuffer-to-typedarray.mdx +41 -0
  20. package/docs/guides/binary/blob-to-arraybuffer.mdx +16 -0
  21. package/docs/guides/binary/blob-to-dataview.mdx +16 -0
  22. package/docs/guides/binary/blob-to-stream.mdx +16 -0
  23. package/docs/guides/binary/blob-to-string.mdx +17 -0
  24. package/docs/guides/binary/blob-to-typedarray.mdx +16 -0
  25. package/docs/guides/binary/buffer-to-arraybuffer.mdx +16 -0
  26. package/docs/guides/binary/buffer-to-blob.mdx +16 -0
  27. package/docs/guides/binary/buffer-to-readablestream.mdx +43 -0
  28. package/docs/guides/binary/buffer-to-string.mdx +27 -0
  29. package/docs/guides/binary/buffer-to-typedarray.mdx +16 -0
  30. package/docs/guides/binary/dataview-to-string.mdx +17 -0
  31. package/docs/guides/binary/typedarray-to-arraybuffer.mdx +27 -0
  32. package/docs/guides/binary/typedarray-to-blob.mdx +18 -0
  33. package/docs/guides/binary/typedarray-to-buffer.mdx +16 -0
  34. package/docs/guides/binary/typedarray-to-dataview.mdx +16 -0
  35. package/docs/guides/binary/typedarray-to-readablestream.mdx +43 -0
  36. package/docs/guides/binary/typedarray-to-string.mdx +18 -0
  37. package/docs/guides/deployment/aws-lambda.mdx +204 -0
  38. package/docs/guides/deployment/digital-ocean.mdx +161 -0
  39. package/docs/guides/deployment/google-cloud-run.mdx +197 -0
  40. package/docs/guides/deployment/railway.mdx +145 -0
  41. package/docs/guides/deployment/render.mdx +82 -0
  42. package/docs/guides/deployment/vercel.mdx +99 -0
  43. package/docs/guides/ecosystem/astro.mdx +82 -0
  44. package/docs/guides/ecosystem/discordjs.mdx +80 -0
  45. package/docs/guides/ecosystem/docker.mdx +151 -0
  46. package/docs/guides/ecosystem/drizzle.mdx +195 -0
  47. package/docs/guides/ecosystem/edgedb.mdx +257 -0
  48. package/docs/guides/ecosystem/elysia.mdx +31 -0
  49. package/docs/guides/ecosystem/express.mdx +43 -0
  50. package/docs/guides/ecosystem/hono.mdx +47 -0
  51. package/docs/guides/ecosystem/mongoose.mdx +92 -0
  52. package/docs/guides/ecosystem/neon-drizzle.mdx +234 -0
  53. package/docs/guides/ecosystem/neon-serverless-postgres.mdx +60 -0
  54. package/docs/guides/ecosystem/nextjs.mdx +57 -0
  55. package/docs/guides/ecosystem/nuxt.mdx +90 -0
  56. package/docs/guides/ecosystem/pm2.mdx +55 -0
  57. package/docs/guides/ecosystem/prisma-postgres.mdx +169 -0
  58. package/docs/guides/ecosystem/prisma.mdx +164 -0
  59. package/docs/guides/ecosystem/qwik.mdx +114 -0
  60. package/docs/guides/ecosystem/react.mdx +52 -0
  61. package/docs/guides/ecosystem/remix.mdx +97 -0
  62. package/docs/guides/ecosystem/sentry.mdx +54 -0
  63. package/docs/guides/ecosystem/solidstart.mdx +66 -0
  64. package/docs/guides/ecosystem/ssr-react.mdx +49 -0
  65. package/docs/guides/ecosystem/stric.mdx +54 -0
  66. package/docs/guides/ecosystem/sveltekit.mdx +138 -0
  67. package/docs/guides/ecosystem/systemd.mdx +114 -0
  68. package/docs/guides/ecosystem/upstash.mdx +87 -0
  69. package/docs/guides/ecosystem/vite.mdx +77 -0
  70. package/docs/guides/html-rewriter/extract-links.mdx +72 -0
  71. package/docs/guides/html-rewriter/extract-social-meta.mdx +97 -0
  72. package/docs/guides/http/cluster.mdx +69 -0
  73. package/docs/guides/http/fetch-unix.mdx +35 -0
  74. package/docs/guides/http/fetch.mdx +26 -0
  75. package/docs/guides/http/file-uploads.mdx +97 -0
  76. package/docs/guides/http/hot.mdx +28 -0
  77. package/docs/guides/http/proxy.mdx +26 -0
  78. package/docs/guides/http/server.mdx +48 -0
  79. package/docs/guides/http/simple.mdx +20 -0
  80. package/docs/guides/http/stream-file.mdx +50 -0
  81. package/docs/guides/http/stream-iterator.mdx +49 -0
  82. package/docs/guides/http/stream-node-streams-in-bun.mdx +22 -0
  83. package/docs/guides/http/tls.mdx +32 -0
  84. package/docs/guides/index.mdx +10 -0
  85. package/docs/guides/install/add-dev.mdx +28 -0
  86. package/docs/guides/install/add-git.mdx +38 -0
  87. package/docs/guides/install/add-optional.mdx +27 -0
  88. package/docs/guides/install/add-peer.mdx +45 -0
  89. package/docs/guides/install/add-tarball.mdx +35 -0
  90. package/docs/guides/install/add.mdx +44 -0
  91. package/docs/guides/install/azure-artifacts.mdx +76 -0
  92. package/docs/guides/install/cicd.mdx +43 -0
  93. package/docs/guides/install/custom-registry.mdx +32 -0
  94. package/docs/guides/install/from-npm-install-to-bun-install.mdx +230 -0
  95. package/docs/guides/install/git-diff-bun-lockfile.mdx +47 -0
  96. package/docs/guides/install/jfrog-artifactory.mdx +28 -0
  97. package/docs/guides/install/npm-alias.mdx +25 -0
  98. package/docs/guides/install/registry-scope.mdx +40 -0
  99. package/docs/guides/install/trusted.mdx +50 -0
  100. package/docs/guides/install/workspaces.mdx +70 -0
  101. package/docs/guides/install/yarnlock.mdx +50 -0
  102. package/docs/guides/process/argv.mdx +66 -0
  103. package/docs/guides/process/ctrl-c.mdx +18 -0
  104. package/docs/guides/process/ipc.mdx +69 -0
  105. package/docs/guides/process/nanoseconds.mdx +15 -0
  106. package/docs/guides/process/os-signals.mdx +41 -0
  107. package/docs/guides/process/spawn-stderr.mdx +34 -0
  108. package/docs/guides/process/spawn-stdout.mdx +28 -0
  109. package/docs/guides/process/spawn.mdx +43 -0
  110. package/docs/guides/process/stdin.mdx +62 -0
  111. package/docs/guides/read-file/arraybuffer.mdx +30 -0
  112. package/docs/guides/read-file/buffer.mdx +21 -0
  113. package/docs/guides/read-file/exists.mdx +18 -0
  114. package/docs/guides/read-file/json.mdx +19 -0
  115. package/docs/guides/read-file/mime.mdx +22 -0
  116. package/docs/guides/read-file/stream.mdx +28 -0
  117. package/docs/guides/read-file/string.mdx +24 -0
  118. package/docs/guides/read-file/uint8array.mdx +23 -0
  119. package/docs/guides/read-file/watch.mdx +66 -0
  120. package/docs/guides/runtime/build-time-constants.mdx +295 -0
  121. package/docs/guides/runtime/cicd.mdx +45 -0
  122. package/docs/guides/runtime/codesign-macos-executable.mdx +61 -0
  123. package/docs/guides/runtime/define-constant.mdx +149 -0
  124. package/docs/guides/runtime/delete-directory.mdx +39 -0
  125. package/docs/guides/runtime/delete-file.mdx +21 -0
  126. package/docs/guides/runtime/heap-snapshot.mdx +28 -0
  127. package/docs/guides/runtime/import-html.mdx +17 -0
  128. package/docs/guides/runtime/import-json.mdx +46 -0
  129. package/docs/guides/runtime/import-toml.mdx +32 -0
  130. package/docs/guides/runtime/import-yaml.mdx +104 -0
  131. package/docs/guides/runtime/read-env.mdx +37 -0
  132. package/docs/guides/runtime/set-env.mdx +51 -0
  133. package/docs/guides/runtime/shell.mdx +42 -0
  134. package/docs/guides/runtime/timezone.mdx +38 -0
  135. package/docs/guides/runtime/tsconfig-paths.mdx +31 -0
  136. package/docs/guides/runtime/typescript.mdx +51 -0
  137. package/docs/guides/runtime/vscode-debugger.mdx +48 -0
  138. package/docs/guides/runtime/web-debugger.mdx +103 -0
  139. package/docs/guides/streams/node-readable-to-arraybuffer.mdx +13 -0
  140. package/docs/guides/streams/node-readable-to-blob.mdx +13 -0
  141. package/docs/guides/streams/node-readable-to-json.mdx +14 -0
  142. package/docs/guides/streams/node-readable-to-string.mdx +14 -0
  143. package/docs/guides/streams/node-readable-to-uint8array.mdx +13 -0
  144. package/docs/guides/streams/to-array.mdx +16 -0
  145. package/docs/guides/streams/to-arraybuffer.mdx +16 -0
  146. package/docs/guides/streams/to-blob.mdx +16 -0
  147. package/docs/guides/streams/to-buffer.mdx +17 -0
  148. package/docs/guides/streams/to-json.mdx +16 -0
  149. package/docs/guides/streams/to-string.mdx +16 -0
  150. package/docs/guides/streams/to-typedarray.mdx +24 -0
  151. package/docs/guides/test/bail.mdx +24 -0
  152. package/docs/guides/test/coverage-threshold.mdx +67 -0
  153. package/docs/guides/test/coverage.mdx +49 -0
  154. package/docs/guides/test/happy-dom.mdx +73 -0
  155. package/docs/guides/test/migrate-from-jest.mdx +125 -0
  156. package/docs/guides/test/mock-clock.mdx +50 -0
  157. package/docs/guides/test/mock-functions.mdx +70 -0
  158. package/docs/guides/test/rerun-each.mdx +16 -0
  159. package/docs/guides/test/run-tests.mdx +116 -0
  160. package/docs/guides/test/skip-tests.mdx +43 -0
  161. package/docs/guides/test/snapshot.mdx +102 -0
  162. package/docs/guides/test/spy-on.mdx +49 -0
  163. package/docs/guides/test/svelte-test.mdx +113 -0
  164. package/docs/guides/test/testing-library.mdx +93 -0
  165. package/docs/guides/test/timeout.mdx +17 -0
  166. package/docs/guides/test/todo-tests.mdx +74 -0
  167. package/docs/guides/test/update-snapshots.mdx +49 -0
  168. package/docs/guides/test/watch-mode.mdx +24 -0
  169. package/docs/guides/util/base64.mdx +17 -0
  170. package/docs/guides/util/deep-equals.mdx +41 -0
  171. package/docs/guides/util/deflate.mdx +20 -0
  172. package/docs/guides/util/detect-bun.mdx +25 -0
  173. package/docs/guides/util/entrypoint.mdx +19 -0
  174. package/docs/guides/util/escape-html.mdx +24 -0
  175. package/docs/guides/util/file-url-to-path.mdx +16 -0
  176. package/docs/guides/util/gzip.mdx +20 -0
  177. package/docs/guides/util/hash-a-password.mdx +56 -0
  178. package/docs/guides/util/import-meta-dir.mdx +15 -0
  179. package/docs/guides/util/import-meta-file.mdx +15 -0
  180. package/docs/guides/util/import-meta-path.mdx +15 -0
  181. package/docs/guides/util/javascript-uuid.mdx +25 -0
  182. package/docs/guides/util/main.mdx +43 -0
  183. package/docs/guides/util/path-to-file-url.mdx +16 -0
  184. package/docs/guides/util/sleep.mdx +24 -0
  185. package/docs/guides/util/version.mdx +23 -0
  186. package/docs/guides/util/which-path-to-executable-bin.mdx +17 -0
  187. package/docs/guides/websocket/compression.mdx +33 -0
  188. package/docs/guides/websocket/context.mdx +74 -0
  189. package/docs/guides/websocket/pubsub.mdx +40 -0
  190. package/docs/guides/websocket/simple.mdx +35 -0
  191. package/docs/guides/write-file/append.mdx +54 -0
  192. package/docs/guides/write-file/basic.mdx +46 -0
  193. package/docs/guides/write-file/blob.mdx +30 -0
  194. package/docs/guides/write-file/cat.mdx +19 -0
  195. package/docs/guides/write-file/file-cp.mdx +18 -0
  196. package/docs/guides/write-file/filesink.mdx +54 -0
  197. package/docs/guides/write-file/response.mdx +19 -0
  198. package/docs/guides/write-file/stdout.mdx +23 -0
  199. package/docs/guides/write-file/stream.mdx +19 -0
  200. package/docs/guides/write-file/unlink.mdx +18 -0
  201. package/docs/index.mdx +133 -0
  202. package/docs/installation.mdx +365 -0
  203. package/docs/pm/bunx.mdx +83 -0
  204. package/docs/pm/catalogs.mdx +292 -0
  205. package/docs/pm/cli/add.mdx +179 -0
  206. package/docs/pm/cli/audit.mdx +60 -0
  207. package/docs/pm/cli/install.mdx +471 -0
  208. package/docs/pm/cli/link.mdx +48 -0
  209. package/docs/pm/cli/outdated.mdx +197 -0
  210. package/docs/pm/cli/patch.mdx +69 -0
  211. package/docs/pm/cli/pm.mdx +319 -0
  212. package/docs/pm/cli/publish.mdx +123 -0
  213. package/docs/pm/cli/remove.mdx +16 -0
  214. package/docs/pm/cli/update.mdx +140 -0
  215. package/docs/pm/cli/why.mdx +84 -0
  216. package/docs/pm/filter.mdx +102 -0
  217. package/docs/pm/global-cache.mdx +72 -0
  218. package/docs/pm/isolated-installs.mdx +205 -0
  219. package/docs/pm/lifecycle.mdx +57 -0
  220. package/docs/pm/lockfile.mdx +64 -0
  221. package/docs/pm/npmrc.mdx +111 -0
  222. package/docs/pm/overrides.mdx +83 -0
  223. package/docs/pm/scopes-registries.mdx +35 -0
  224. package/docs/pm/security-scanner-api.mdx +95 -0
  225. package/docs/pm/workspaces.mdx +109 -0
  226. package/docs/project/benchmarking.mdx +218 -0
  227. package/docs/project/bindgen.mdx +223 -0
  228. package/docs/project/building-windows.mdx +133 -0
  229. package/docs/project/contributing.mdx +343 -0
  230. package/docs/project/feedback.mdx +20 -0
  231. package/docs/project/license.mdx +78 -0
  232. package/docs/project/roadmap.mdx +8 -0
  233. package/docs/quickstart.mdx +240 -0
  234. package/docs/runtime/auto-install.mdx +97 -0
  235. package/docs/runtime/binary-data.mdx +846 -0
  236. package/docs/runtime/bun-apis.mdx +59 -0
  237. package/docs/runtime/bunfig.mdx +642 -0
  238. package/docs/runtime/c-compiler.mdx +204 -0
  239. package/docs/runtime/child-process.mdx +532 -0
  240. package/docs/runtime/color.mdx +267 -0
  241. package/docs/runtime/console.mdx +67 -0
  242. package/docs/runtime/cookies.mdx +454 -0
  243. package/docs/runtime/debugger.mdx +335 -0
  244. package/docs/runtime/environment-variables.mdx +214 -0
  245. package/docs/runtime/ffi.mdx +565 -0
  246. package/docs/runtime/file-io.mdx +306 -0
  247. package/docs/runtime/file-system-router.mdx +118 -0
  248. package/docs/runtime/file-types.mdx +354 -0
  249. package/docs/runtime/glob.mdx +181 -0
  250. package/docs/runtime/globals.mdx +72 -0
  251. package/docs/runtime/hashing.mdx +315 -0
  252. package/docs/runtime/html-rewriter.mdx +340 -0
  253. package/docs/runtime/http/cookies.mdx +79 -0
  254. package/docs/runtime/http/error-handling.mdx +40 -0
  255. package/docs/runtime/http/metrics.mdx +36 -0
  256. package/docs/runtime/http/routing.mdx +289 -0
  257. package/docs/runtime/http/server.mdx +647 -0
  258. package/docs/runtime/http/tls.mdx +101 -0
  259. package/docs/runtime/http/websockets.mdx +404 -0
  260. package/docs/runtime/index.mdx +223 -0
  261. package/docs/runtime/jsx.mdx +115 -0
  262. package/docs/runtime/module-resolution.mdx +342 -0
  263. package/docs/runtime/networking/dns.mdx +111 -0
  264. package/docs/runtime/networking/fetch.mdx +468 -0
  265. package/docs/runtime/networking/tcp.mdx +239 -0
  266. package/docs/runtime/networking/udp.mdx +129 -0
  267. package/docs/runtime/node-api.mdx +19 -0
  268. package/docs/runtime/nodejs-compat.mdx +468 -0
  269. package/docs/runtime/plugins.mdx +405 -0
  270. package/docs/runtime/redis.mdx +582 -0
  271. package/docs/runtime/s3.mdx +863 -0
  272. package/docs/runtime/secrets.mdx +336 -0
  273. package/docs/runtime/semver.mdx +57 -0
  274. package/docs/runtime/shell.mdx +637 -0
  275. package/docs/runtime/sql.mdx +1404 -0
  276. package/docs/runtime/sqlite.mdx +699 -0
  277. package/docs/runtime/streams.mdx +232 -0
  278. package/docs/runtime/templating/create.mdx +269 -0
  279. package/docs/runtime/templating/init.mdx +58 -0
  280. package/docs/runtime/transpiler.mdx +288 -0
  281. package/docs/runtime/typescript.mdx +58 -0
  282. package/docs/runtime/utils.mdx +922 -0
  283. package/docs/runtime/watch-mode.mdx +161 -0
  284. package/docs/runtime/web-apis.mdx +29 -0
  285. package/docs/runtime/workers.mdx +328 -0
  286. package/docs/runtime/yaml.mdx +469 -0
  287. package/docs/snippets/cli/add.mdx +166 -0
  288. package/docs/snippets/cli/build.mdx +196 -0
  289. package/docs/snippets/cli/feedback.mdx +17 -0
  290. package/docs/snippets/cli/init.mdx +84 -0
  291. package/docs/snippets/cli/install.mdx +173 -0
  292. package/docs/snippets/cli/link.mdx +163 -0
  293. package/docs/snippets/cli/outdated.mdx +140 -0
  294. package/docs/snippets/cli/patch.mdx +171 -0
  295. package/docs/snippets/cli/publish.mdx +198 -0
  296. package/docs/snippets/cli/remove.mdx +146 -0
  297. package/docs/snippets/cli/run.mdx +293 -0
  298. package/docs/snippets/cli/test.mdx +100 -0
  299. package/docs/snippets/cli/update.mdx +144 -0
  300. package/docs/snippets/product-card.mdx +32 -0
  301. package/docs/snippets/product-tiles.mdx +94 -0
  302. package/docs/test/code-coverage.mdx +409 -0
  303. package/docs/test/configuration.mdx +467 -0
  304. package/docs/test/dates-times.mdx +129 -0
  305. package/docs/test/discovery.mdx +90 -0
  306. package/docs/test/dom.mdx +226 -0
  307. package/docs/test/index.mdx +380 -0
  308. package/docs/test/lifecycle.mdx +348 -0
  309. package/docs/test/mocks.mdx +637 -0
  310. package/docs/test/reporters.mdx +117 -0
  311. package/docs/test/runtime-behavior.mdx +342 -0
  312. package/docs/test/snapshots.mdx +434 -0
  313. package/docs/test/writing-tests.mdx +635 -0
  314. package/docs/typescript.mdx +54 -0
  315. package/package.json +8 -6
  316. package/test.d.ts +2 -2
@@ -0,0 +1,60 @@
1
+ ---
2
+ title: Use Neon's Serverless Postgres with Bun
3
+ sidebarTitle: Neon Serverless Postgres with Bun
4
+ mode: center
5
+ ---
6
+
7
+ [Neon](https://neon.tech/) is a fully managed serverless Postgres. Neon separates compute and storage to offer modern developer features such as autoscaling, branching, bottomless storage, and more.
8
+
9
+ ---
10
+
11
+ Get started by creating a project directory, initializing the directory using `bun init`, and adding the [Neon serverless driver](https://github.com/neondatabase/serverless/) as a project dependency.
12
+
13
+ ```sh terminal icon="terminal"
14
+ mkdir bun-neon-postgres
15
+ cd bun-neon-postgres
16
+ bun init -y
17
+ bun add @neondatabase/serverless
18
+ ```
19
+
20
+ ---
21
+
22
+ Create a `.env.local` file and add your [Neon Postgres connection string](https://neon.tech/docs/connect/connect-from-any-app) to it.
23
+
24
+ ```sh .env.local icon="settings"
25
+ DATABASE_URL=postgresql://usertitle:password@ep-adj-noun-guid.us-east-1.aws.neon.tech/neondb?sslmode=require
26
+ ```
27
+
28
+ ---
29
+
30
+ Paste the following code into your project's `index.ts` file.
31
+
32
+ ```ts index.ts icon="/icons/typescript.svg"
33
+ import { neon } from "@neondatabase/serverless";
34
+
35
+ // Bun automatically loads the DATABASE_URL from .env.local
36
+ // Refer to: https://bun.com/docs/runtime/env for more information
37
+ const sql = neon(process.env.DATABASE_URL);
38
+
39
+ const rows = await sql`SELECT version()`;
40
+
41
+ console.log(rows[0].version);
42
+ ```
43
+
44
+ ---
45
+
46
+ Start the program using `bun ./index.ts`. The Postgres version should be printed to the console.
47
+
48
+ ```sh terminal icon="terminal"
49
+ bun ./index.ts
50
+ ```
51
+
52
+ ```txt
53
+ PostgreSQL 16.2 on x86_64-pc-linux-gnu, compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit
54
+ ```
55
+
56
+ ---
57
+
58
+ This example used the Neon serverless driver's SQL-over-HTTP functionality. Neon's serverless driver also exposes `Client` and `Pool` constructors to enable sessions, interactive transactions, and node-postgres compatibility.
59
+
60
+ Refer to [Neon's documentation](https://neon.tech/docs/serverless/serverless-driver) for a complete overview of the serverless driver.
@@ -0,0 +1,57 @@
1
+ ---
2
+ title: Build an app with Next.js and Bun
3
+ sidebarTitle: Next.js with Bun
4
+ mode: center
5
+ ---
6
+
7
+ Initialize a Next.js app with `create-next-app`. This will scaffold a new Next.js project and automatically install dependencies.
8
+
9
+ ```sh terminal icon="terminal"
10
+ bun create next-app
11
+ ```
12
+
13
+ ```txt
14
+ ✔ What is your project named? … my-app
15
+ ✔ Would you like to use TypeScript with this project? … No / Yes
16
+ ✔ Would you like to use ESLint with this project? … No / Yes
17
+ ✔ Would you like to use Tailwind CSS? ... No / Yes
18
+ ✔ Would you like to use `src/` directory with this project? … No / Yes
19
+ ✔ Would you like to use App Router? (recommended) ... No / Yes
20
+ ✔ What import alias would you like configured? … @/*
21
+ Creating a new Next.js app in /path/to/my-app.
22
+ ```
23
+
24
+ ---
25
+
26
+ You can specify a starter template using the `--example` flag.
27
+
28
+ ```sh
29
+ bun create next-app --example with-supabase
30
+ ```
31
+
32
+ ```txt
33
+ ✔ What is your project named? … my-app
34
+ ...
35
+ ```
36
+
37
+ ---
38
+
39
+ To start the dev server with Bun, run `bun --bun run dev` from the project root.
40
+
41
+ ```sh terminal icon="terminal"
42
+ cd my-app
43
+ bun --bun run dev
44
+ ```
45
+
46
+ ---
47
+
48
+ To run the dev server with Node.js instead, omit `--bun`.
49
+
50
+ ```sh terminal icon="terminal"
51
+ cd my-app
52
+ bun run dev
53
+ ```
54
+
55
+ ---
56
+
57
+ Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. Any changes you make to `(pages/app)/index.tsx` will be hot-reloaded in the browser.
@@ -0,0 +1,90 @@
1
+ ---
2
+ title: Build an app with Nuxt and Bun
3
+ sidebarTitle: Nuxt with Bun
4
+ mode: center
5
+ ---
6
+
7
+ Bun supports [Nuxt](https://nuxt.com) out of the box. Initialize a Nuxt app with official `nuxi` CLI.
8
+
9
+ ```sh terminal icon="terminal"
10
+ bunx nuxi init my-nuxt-app
11
+ ```
12
+
13
+ ```txt
14
+ ✔ Which package manager would you like to use?
15
+ bun
16
+ ◐ Installing dependencies...
17
+ bun install v1.3.1 (16b4bf34)
18
+ + @nuxt/devtools@0.8.2
19
+ + nuxt@3.7.0
20
+ 785 packages installed [2.67s]
21
+ ✔ Installation completed.
22
+ ✔ Types generated in .nuxt
23
+ ✨ Nuxt project has been created with the v3 template. Next steps:
24
+ › cd my-nuxt-app
25
+ › Start development server with bun run dev
26
+ ```
27
+
28
+ ---
29
+
30
+ To start the dev server, run `bun --bun run dev` from the project root. This will execute the `nuxt dev` command (as defined in the `"dev"` script in `package.json`).
31
+
32
+ <Note>
33
+ The `nuxt` CLI uses Node.js by default; passing the `--bun` flag forces the dev server to use the Bun runtime instead.
34
+ </Note>
35
+
36
+ ```sh terminal icon="terminal"
37
+ cd my-nuxt-app
38
+ bun --bun run dev
39
+ ```
40
+
41
+ ```txt
42
+ nuxt dev
43
+ Nuxi 3.6.5
44
+ Nuxt 3.6.5 with Nitro 2.5.2
45
+ > Local: http://localhost:3000/
46
+ > Network: http://192.168.0.21:3000/
47
+ > Network: http://[fd8a:d31d:481c:4883:1c64:3d90:9f83:d8a2]:3000/
48
+
49
+ ✔ Nuxt DevTools is enabled v0.8.0 (experimental)
50
+ ℹ Vite client warmed up in 547ms
51
+ ✔ Nitro built in 244 ms
52
+ ```
53
+
54
+ ---
55
+
56
+ Once the dev server spins up, open [http://localhost:3000](http://localhost:3000) to see the app. The app will render Nuxt's built-in `NuxtWelcome` template component.
57
+
58
+ To start developing your app, replace `<NuxtWelcome />` in `app.vue` with your own UI.
59
+
60
+ <Frame>
61
+ ![Demo Nuxt app running on
62
+ localhost](https://github.com/oven-sh/bun/assets/3084745/2c683ecc-3298-4bb0-b8c0-cf4cfaea1daa)
63
+ </Frame>
64
+
65
+ ---
66
+
67
+ For production build, while the default preset is already compatible with Bun, you can also use [Bun preset](https://nitro.build/deploy/runtimes/bun) to generate better optimized builds.
68
+
69
+ ```ts nuxt.config.ts icon="/icons/typescript.svg"
70
+ export default defineNuxtConfig({
71
+ nitro: {
72
+ preset: "bun", // [!code ++]
73
+ },
74
+ });
75
+ ```
76
+
77
+ <Note>
78
+ Some packages provide Bun-specific exports that Nitro will not bundle correctly using the default preset. In this
79
+ case, you need to use Bun preset so that the packages will work correctly in production builds.
80
+ </Note>
81
+
82
+ After building with bun, run:
83
+
84
+ ```sh terminal icon="terminal"
85
+ bun run ./.output/server/index.mjs
86
+ ```
87
+
88
+ ---
89
+
90
+ Refer to the [Nuxt website](https://nuxt.com/docs) for complete documentation.
@@ -0,0 +1,55 @@
1
+ ---
2
+ title: Run Bun as a daemon with PM2
3
+ sidebarTitle: PM2 with Bun
4
+ mode: center
5
+ ---
6
+
7
+ [PM2](https://pm2.keymetrics.io/) is a popular process manager that manages and runs your applications as daemons (background processes).
8
+
9
+ It offers features like process monitoring, automatic restarts, and easy scaling. Using a process manager is common when deploying a Bun application on a cloud-hosted virtual private server (VPS), as it:
10
+
11
+ - Keeps your Node.js application running continuously.
12
+ - Ensure high availability and reliability of your application.
13
+ - Monitor and manage multiple processes with ease.
14
+ - Simplify the deployment process.
15
+
16
+ ---
17
+
18
+ You can use PM2 with Bun in two ways: as a CLI option or in a configuration file.
19
+
20
+ ### With `--interpreter`
21
+
22
+ To start your application with PM2 and Bun as the interpreter, open your terminal and run the following command:
23
+
24
+ ```bash terminal icon="terminal"
25
+ pm2 start --interpreter ~/.bun/bin/bun index.ts
26
+ ```
27
+
28
+ ---
29
+
30
+ ### With a configuration file
31
+
32
+ Alternatively, you can create a PM2 configuration file. Create a file named `pm2.config.js` in your project directory and add the following content.
33
+
34
+ ```js pm2.config.js icon="file-code"
35
+ module.exports = {
36
+ title: "app", // Name of your application
37
+ script: "index.ts", // Entry point of your application
38
+ interpreter: "bun", // Bun interpreter
39
+ env: {
40
+ PATH: `${process.env.HOME}/.bun/bin:${process.env.PATH}`, // Add "~/.bun/bin/bun" to PATH
41
+ },
42
+ };
43
+ ```
44
+
45
+ ---
46
+
47
+ After saving the file, you can start your application with PM2
48
+
49
+ ```bash terminal icon="terminal"
50
+ pm2 start pm2.config.js
51
+ ```
52
+
53
+ ---
54
+
55
+ That’s it! Your JavaScript/TypeScript web server is now running as a daemon with PM2 using Bun as the interpreter.
@@ -0,0 +1,169 @@
1
+ ---
2
+ title: Use Prisma Postgres with Bun
3
+ sidebarTitle: Prisma Postgres with Bun
4
+ mode: center
5
+ ---
6
+
7
+ <Note>
8
+ **Note** — At the moment Prisma needs Node.js to be installed to run certain generation code. Make sure Node.js is
9
+ installed in the environment where you're running `bunx prisma` commands.
10
+ </Note>
11
+
12
+ <Steps>
13
+ <Step title="Create a new project">
14
+ First, create a directory and initialize it with `bun init`.
15
+
16
+ ```bash terminal icon="terminal"
17
+ mkdir prisma-postgres-app
18
+ cd prisma-postgres-app
19
+ bun init
20
+ ```
21
+ </Step>
22
+
23
+ <Step title="Install Prisma dependencies">
24
+ Then install the Prisma CLI (`prisma`), Prisma Client (`@prisma/client`), and the accelerate extension as dependencies.
25
+
26
+ ```bash terminal icon="terminal"
27
+ bun add -d prisma
28
+ bun add @prisma/client @prisma/extension-accelerate
29
+ ```
30
+ </Step>
31
+
32
+ <Step title="Initialize Prisma with PostgreSQL">
33
+ We'll use the Prisma CLI with `bunx` to initialize our schema and migration directory. We'll be using PostgreSQL as our database.
34
+
35
+ ```bash terminal icon="terminal"
36
+ bunx --bun prisma init --db
37
+ ```
38
+
39
+ This creates a basic schema. We need to update it to use the new Rust-free client with Bun optimization. Open `prisma/schema.prisma` and modify the generator block, then add a simple `User` model.
40
+
41
+ ```prisma prisma/schema.prisma icon="/icons/ecosystem/prisma.svg"
42
+ generator client {
43
+ provider = "prisma-client"
44
+ output = "./generated" // [!code ++]
45
+ engineType = "client" // [!code ++]
46
+ runtime = "bun" // [!code ++]
47
+ }
48
+
49
+ datasource db {
50
+ provider = "postgresql"
51
+ url = env("DATABASE_URL")
52
+ }
53
+
54
+ model User { // [!code ++]
55
+ id Int @id @default(autoincrement()) // [!code ++]
56
+ email String @unique // [!code ++]
57
+ name String? // [!code ++]
58
+ } // [!code ++]
59
+ ```
60
+ </Step>
61
+
62
+ <Step title="Configure database connection">
63
+ Set up your Postgres database URL in the `.env` file.
64
+
65
+ ```env .env icon="settings"
66
+ DATABASE_URL="postgresql://username:password@localhost:5432/mydb?schema=public"
67
+ ```
68
+ </Step>
69
+
70
+ <Step title="Create and run database migration">
71
+ Then generate and run initial migration.
72
+
73
+ This will generate a `.sql` migration file in `prisma/migrations`, and execute the migration against your Postgres database.
74
+
75
+ ```bash terminal icon="terminal"
76
+ bunx --bun prisma migrate dev --name init
77
+ ```
78
+
79
+ ```txt
80
+ Environment variables loaded from .env
81
+ Prisma schema loaded from prisma/schema.prisma
82
+ Datasource "db": PostgreSQL database "mydb", schema "public" at "localhost:5432"
83
+
84
+ Applying migration `20250114141233_init`
85
+
86
+ The following migration(s) have been created and applied from new schema changes:
87
+
88
+ prisma/migrations/
89
+ └─ 20250114141233_init/
90
+ └─ migration.sql
91
+
92
+ Your database is now in sync with your schema.
93
+
94
+ ✔ Generated Prisma Client (6.17.1) to ./generated in 18ms
95
+ ```
96
+ </Step>
97
+
98
+ <Step title="Generate Prisma Client">
99
+ As indicated in the output, Prisma re-generates our _Prisma client_ whenever we execute a new migration. The client provides a fully typed API for reading and writing from our database. You can manually re-generate the client with the Prisma CLI.
100
+
101
+ ```sh terminal icon="terminal"
102
+ bunx --bun prisma generate
103
+ ```
104
+ </Step>
105
+
106
+ <Step title="Initialize Prisma Client with Accelerate">
107
+ Now we need to create a Prisma client instance. Create a new file `prisma/db.ts` to initialize the PrismaClient with the Postgres adapter.
108
+
109
+ ```ts prisma/db.ts icon="/icons/typescript.svg"
110
+ import { PrismaClient } from "./generated/client";
111
+ import { withAccelerate } from '@prisma/extension-accelerate'
112
+
113
+ export const prisma = new PrismaClient().$extends(withAccelerate())
114
+ ```
115
+ </Step>
116
+
117
+ <Step title="Create a test script">
118
+ Let's write a simple script to create a new user, then count the number of users in the database.
119
+
120
+ ```ts index.ts icon="/icons/typescript.svg"
121
+ import { prisma } from "./prisma/db";
122
+
123
+ // create a new user
124
+ await prisma.user.create({
125
+ data: {
126
+ name: "John Dough",
127
+ email: `john-${Math.random()}@example.com`,
128
+ },
129
+ });
130
+
131
+ // count the number of users
132
+ const count = await prisma.user.count();
133
+ console.log(`There are ${count} users in the database.`);
134
+ ```
135
+ </Step>
136
+
137
+ <Step title="Run and test the application">
138
+ Let's run this script with `bun run`. Each time we run it, a new user is created.
139
+
140
+ ```bash terminal icon="terminal"
141
+ bun run index.ts
142
+ ```
143
+
144
+ ```txt
145
+ There are 1 users in the database.
146
+ ```
147
+
148
+ ```bash terminal icon="terminal"
149
+ bun run index.ts
150
+ ```
151
+
152
+ ```txt
153
+ There are 2 users in the database.
154
+ ```
155
+
156
+ ```bash terminal icon="terminal"
157
+ bun run index.ts
158
+ ```
159
+
160
+ ```txt
161
+ There are 3 users in the database.
162
+ ```
163
+ </Step>
164
+
165
+ </Steps>
166
+
167
+ ---
168
+
169
+ That's it! Now that you've set up Prisma Postgres using Bun, we recommend referring to the [official Prisma Postgres docs](https://www.prisma.io/docs/postgres) as you continue to develop your application.
@@ -0,0 +1,164 @@
1
+ ---
2
+ title: Use Prisma with Bun
3
+ sidebarTitle: Prisma ORM with Bun
4
+ mode: center
5
+ ---
6
+
7
+ <Note>
8
+ **Note** — Prisma's dynamic subcommand loading system currently requires npm to be installed alongside Bun. This
9
+ affects certain CLI commands like `prisma init`, `prisma migrate`, etc. Generated code works perfectly with Bun using
10
+ the new `prisma-client` generator.
11
+ </Note>
12
+
13
+ <Steps>
14
+ <Step title="Create a new project">
15
+ Prisma works out of the box with Bun. First, create a directory and initialize it with `bun init`.
16
+
17
+ ```bash terminal icon="terminal"
18
+ mkdir prisma-app
19
+ cd prisma-app
20
+ bun init
21
+ ```
22
+ </Step>
23
+
24
+ <Step title="Install Prisma dependencies">
25
+ Then install the Prisma CLI (`prisma`), Prisma Client (`@prisma/client`), and the LibSQL adapter as dependencies.
26
+
27
+ ```bash terminal icon="terminal"
28
+ bun add -d prisma
29
+ bun add @prisma/client @prisma/adapter-libsql
30
+ ```
31
+ </Step>
32
+
33
+ <Step title="Initialize Prisma with SQLite">
34
+ We'll use the Prisma CLI with `bunx` to initialize our schema and migration directory. For simplicity we'll be using an in-memory SQLite database.
35
+
36
+ ```bash terminal icon="terminal"
37
+ bunx --bun prisma init --datasource-provider sqlite
38
+ ```
39
+
40
+ This creates a basic schema. We need to update it to use the new Rust-free client with Bun optimization. Open `prisma/schema.prisma` and modify the generator block, then add a simple `User` model.
41
+
42
+ ```prisma prisma/schema.prisma icon="/icons/ecosystem/prisma.svg"
43
+ generator client {
44
+ provider = "prisma-client" // [!code ++]
45
+ output = "./generated" // [!code ++]
46
+ engineType = "client" // [!code ++]
47
+ runtime = "bun" // [!code ++]
48
+ }
49
+
50
+ datasource db {
51
+ provider = "sqlite"
52
+ url = env("DATABASE_URL")
53
+ }
54
+
55
+ model User { // [!code ++]
56
+ id Int @id @default(autoincrement()) // [!code ++]
57
+ email String @unique // [!code ++]
58
+ name String? // [!code ++]
59
+ } // [!code ++]
60
+ ```
61
+ </Step>
62
+
63
+ <Step title="Create and run database migration">
64
+ Then generate and run initial migration.
65
+
66
+ This will generate a `.sql` migration file in `prisma/migrations`, create a new SQLite instance, and execute the migration against the new instance.
67
+
68
+ ```bash terminal icon="terminal"
69
+ bunx --bun prisma migrate dev --name init
70
+ ```
71
+ ```txt
72
+ Environment variables loaded from .env
73
+ Prisma schema loaded from prisma/schema.prisma
74
+ Datasource "db": SQLite database "dev.db" at "file:./dev.db"
75
+
76
+ SQLite database dev.db created at file:./dev.db
77
+
78
+ Applying migration `20251014141233_init`
79
+
80
+ The following migration(s) have been created and applied from new schema changes:
81
+
82
+ prisma/migrations/
83
+ └─ 20251014141233_init/
84
+ └─ migration.sql
85
+
86
+ Your database is now in sync with your schema.
87
+
88
+ ✔ Generated Prisma Client (6.17.1) to ./generated in 18ms
89
+ ```
90
+ </Step>
91
+
92
+ <Step title="Generate Prisma Client">
93
+ As indicated in the output, Prisma re-generates our _Prisma client_ whenever we execute a new migration. The client provides a fully typed API for reading and writing from our database. You can manually re-generate the client with the Prisma CLI.
94
+
95
+ ```sh terminal icon="terminal"
96
+ bunx --bun prisma generate
97
+ ```
98
+ </Step>
99
+
100
+ <Step title="Initialize Prisma Client with LibSQL">
101
+ Now we need to create a Prisma client instance. Create a new file `prisma/db.ts` to initialize the PrismaClient with the LibSQL adapter.
102
+
103
+ ```ts prisma/db.ts icon="/icons/typescript.svg"
104
+ import { PrismaClient } from "./generated/client";
105
+ import { PrismaLibSQL } from "@prisma/adapter-libsql";
106
+
107
+ const adapter = new PrismaLibSQL({ url: process.env.DATABASE_URL || "" });
108
+ export const prisma = new PrismaClient({ adapter });
109
+ ```
110
+ </Step>
111
+
112
+ <Step title="Create a test script">
113
+ Let's write a simple script to create a new user, then count the number of users in the database.
114
+
115
+ ```ts index.ts icon="/icons/typescript.svg"
116
+ import { prisma } from "./prisma/db";
117
+
118
+ // create a new user
119
+ await prisma.user.create({
120
+ data: {
121
+ name: "John Dough",
122
+ email: `john-${Math.random()}@example.com`,
123
+ },
124
+ });
125
+
126
+ // count the number of users
127
+ const count = await prisma.user.count();
128
+ console.log(`There are ${count} users in the database.`);
129
+ ```
130
+ </Step>
131
+
132
+ <Step title="Run and test the application">
133
+ Let's run this script with `bun run`. Each time we run it, a new user is created.
134
+
135
+ ```bash terminal icon="terminal"
136
+ bun run index.ts
137
+ ```
138
+ ```txg
139
+ Created john-0.12802932895402364@example.com
140
+ There are 1 users in the database.
141
+ ```
142
+
143
+ ```bash terminal icon="terminal"
144
+ bun run index.ts
145
+ ```
146
+ ```txt
147
+ Created john-0.8671308799782803@example.com
148
+ There are 2 users in the database.
149
+ ```
150
+
151
+ ```bash terminal icon="terminal"
152
+ bun run index.ts
153
+ ```
154
+ ```txt
155
+ Created john-0.4465968383115295@example.com
156
+ There are 3 users in the database.
157
+ ```
158
+ </Step>
159
+
160
+ </Steps>
161
+
162
+ ---
163
+
164
+ That's it! Now that you've set up Prisma using Bun, we recommend referring to the [official Prisma docs](https://www.prisma.io/docs/concepts/components/prisma-client) as you continue to develop your application.