bun-types 1.3.2-canary.20251105T140650 → 1.3.2-canary.20251108T140624
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.
- package/bun.d.ts +102 -6
- package/docs/README.md +28 -0
- package/docs/bundler/bytecode.mdx +465 -0
- package/docs/bundler/{css.md → css.mdx} +97 -101
- package/docs/bundler/esbuild.mdx +253 -0
- package/docs/bundler/{executables.md → executables.mdx} +130 -221
- package/docs/bundler/fullstack.mdx +1064 -0
- package/docs/bundler/{hmr.md → hot-reloading.mdx} +74 -79
- package/docs/bundler/{html.md → html-static.mdx} +148 -111
- package/docs/bundler/index.mdx +1499 -0
- package/docs/bundler/loaders.mdx +356 -0
- package/docs/bundler/{macros.md → macros.mdx} +83 -84
- package/docs/bundler/minifier.mdx +1306 -0
- package/docs/bundler/plugins.mdx +411 -0
- package/docs/feedback.mdx +85 -0
- package/docs/guides/binary/{arraybuffer-to-array.md → arraybuffer-to-array.mdx} +3 -1
- package/docs/guides/binary/{arraybuffer-to-blob.md → arraybuffer-to-blob.mdx} +3 -1
- package/docs/guides/binary/{arraybuffer-to-buffer.md → arraybuffer-to-buffer.mdx} +3 -1
- package/docs/guides/binary/{arraybuffer-to-string.md → arraybuffer-to-string.mdx} +3 -1
- package/docs/guides/binary/{arraybuffer-to-typedarray.md → arraybuffer-to-typedarray.mdx} +3 -1
- package/docs/guides/binary/{blob-to-arraybuffer.md → blob-to-arraybuffer.mdx} +3 -1
- package/docs/guides/binary/{blob-to-dataview.md → blob-to-dataview.mdx} +3 -1
- package/docs/guides/binary/{blob-to-stream.md → blob-to-stream.mdx} +3 -1
- package/docs/guides/binary/{blob-to-string.md → blob-to-string.mdx} +3 -1
- package/docs/guides/binary/{blob-to-typedarray.md → blob-to-typedarray.mdx} +3 -1
- package/docs/guides/binary/{buffer-to-arraybuffer.md → buffer-to-arraybuffer.mdx} +3 -1
- package/docs/guides/binary/{buffer-to-blob.md → buffer-to-blob.mdx} +3 -1
- package/docs/guides/binary/{buffer-to-readablestream.md → buffer-to-readablestream.mdx} +3 -1
- package/docs/guides/binary/{buffer-to-string.md → buffer-to-string.mdx} +3 -1
- package/docs/guides/binary/{buffer-to-typedarray.md → buffer-to-typedarray.mdx} +3 -1
- package/docs/guides/binary/{dataview-to-string.md → dataview-to-string.mdx} +3 -1
- package/docs/guides/binary/{typedarray-to-arraybuffer.md → typedarray-to-arraybuffer.mdx} +3 -1
- package/docs/guides/binary/{typedarray-to-blob.md → typedarray-to-blob.mdx} +3 -1
- package/docs/guides/binary/{typedarray-to-buffer.md → typedarray-to-buffer.mdx} +3 -1
- package/docs/guides/binary/{typedarray-to-dataview.md → typedarray-to-dataview.mdx} +3 -1
- package/docs/guides/binary/{typedarray-to-readablestream.md → typedarray-to-readablestream.mdx} +3 -1
- package/docs/guides/binary/{typedarray-to-string.md → typedarray-to-string.mdx} +3 -1
- package/docs/guides/deployment/aws-lambda.mdx +204 -0
- package/docs/guides/deployment/digital-ocean.mdx +161 -0
- package/docs/guides/deployment/google-cloud-run.mdx +197 -0
- package/docs/guides/deployment/{railway.md → railway.mdx} +42 -54
- package/docs/guides/deployment/render.mdx +82 -0
- package/docs/guides/deployment/vercel.mdx +99 -0
- package/docs/guides/ecosystem/{astro.md → astro.mdx} +16 -6
- package/docs/guides/ecosystem/{discordjs.md → discordjs.mdx} +21 -18
- package/docs/guides/ecosystem/{docker.md → docker.mdx} +25 -14
- package/docs/guides/ecosystem/{drizzle.md → drizzle.mdx} +32 -22
- package/docs/guides/ecosystem/{edgedb.md → edgedb.mdx} +63 -34
- package/docs/guides/ecosystem/{elysia.md → elysia.mdx} +11 -11
- package/docs/guides/ecosystem/{express.md → express.mdx} +12 -9
- package/docs/guides/ecosystem/{hono.md → hono.mdx} +16 -8
- package/docs/guides/ecosystem/{mongoose.md → mongoose.mdx} +26 -21
- package/docs/guides/ecosystem/{neon-drizzle.md → neon-drizzle.mdx} +49 -35
- package/docs/guides/ecosystem/{neon-serverless-postgres.md → neon-serverless-postgres.mdx} +16 -11
- package/docs/guides/ecosystem/{nextjs.md → nextjs.mdx} +18 -10
- package/docs/guides/ecosystem/{nuxt.md → nuxt.mdx} +45 -11
- package/docs/guides/ecosystem/{pm2.md → pm2.mdx} +7 -9
- package/docs/guides/ecosystem/prisma-postgres.mdx +169 -0
- package/docs/guides/ecosystem/prisma.mdx +164 -0
- package/docs/guides/ecosystem/{qwik.md → qwik.mdx} +18 -11
- package/docs/guides/ecosystem/{react.md → react.mdx} +9 -7
- package/docs/guides/ecosystem/{remix.md → remix.mdx} +45 -26
- package/docs/guides/ecosystem/{sentry.md → sentry.mdx} +7 -5
- package/docs/guides/ecosystem/{solidstart.md → solidstart.mdx} +21 -13
- package/docs/guides/ecosystem/{ssr-react.md → ssr-react.mdx} +9 -11
- package/docs/guides/ecosystem/{stric.md → stric.mdx} +16 -17
- package/docs/guides/ecosystem/{sveltekit.md → sveltekit.mdx} +42 -29
- package/docs/guides/ecosystem/{systemd.md → systemd.mdx} +27 -26
- package/docs/guides/ecosystem/upstash.mdx +87 -0
- package/docs/guides/ecosystem/{vite.md → vite.mdx} +20 -14
- package/docs/guides/html-rewriter/{extract-links.md → extract-links.mdx} +11 -7
- package/docs/guides/html-rewriter/{extract-social-meta.md → extract-social-meta.mdx} +6 -2
- package/docs/guides/http/{cluster.md → cluster.mdx} +10 -7
- package/docs/guides/http/{fetch-unix.md → fetch-unix.mdx} +5 -3
- package/docs/guides/http/{fetch.md → fetch.mdx} +5 -3
- package/docs/guides/http/{file-uploads.md → file-uploads.mdx} +18 -15
- package/docs/guides/http/{hot.md → hot.mdx} +9 -7
- package/docs/guides/http/{proxy.md → proxy.mdx} +7 -5
- package/docs/guides/http/{server.md → server.mdx} +4 -2
- package/docs/guides/http/{simple.md → simple.mdx} +4 -2
- package/docs/guides/http/{stream-file.md → stream-file.mdx} +6 -4
- package/docs/guides/http/{stream-iterator.md → stream-iterator.mdx} +5 -3
- package/docs/guides/http/{stream-node-streams-in-bun.md → stream-node-streams-in-bun.mdx} +4 -2
- package/docs/guides/http/{tls.md → tls.mdx} +5 -3
- package/docs/guides/index.mdx +10 -0
- package/docs/guides/install/{add-dev.md → add-dev.mdx} +8 -6
- package/docs/guides/install/add-git.mdx +38 -0
- package/docs/guides/install/{add-optional.md → add-optional.mdx} +7 -5
- package/docs/guides/install/{add-peer.md → add-peer.mdx} +13 -11
- package/docs/guides/install/{add-tarball.md → add-tarball.mdx} +7 -5
- package/docs/guides/install/{add.md → add.mdx} +12 -10
- package/docs/guides/install/{azure-artifacts.md → azure-artifacts.mdx} +15 -12
- package/docs/guides/{runtime/cicd.md → install/cicd.mdx} +13 -13
- package/docs/guides/install/{custom-registry.md → custom-registry.mdx} +6 -4
- package/docs/guides/install/{from-npm-install-to-bun-install.md → from-npm-install-to-bun-install.mdx} +50 -34
- package/docs/guides/install/{git-diff-bun-lockfile.md → git-diff-bun-lockfile.mdx} +14 -11
- package/docs/guides/install/{jfrog-artifactory.md → jfrog-artifactory.mdx} +4 -4
- package/docs/guides/install/{npm-alias.md → npm-alias.mdx} +6 -4
- package/docs/guides/install/{registry-scope.md → registry-scope.mdx} +6 -4
- package/docs/guides/install/{trusted.md → trusted.mdx} +22 -18
- package/docs/guides/install/{workspaces.md → workspaces.mdx} +13 -13
- package/docs/guides/install/{yarnlock.md → yarnlock.mdx} +15 -9
- package/docs/guides/process/{argv.md → argv.mdx} +17 -9
- package/docs/guides/process/{ctrl-c.md → ctrl-c.mdx} +4 -2
- package/docs/guides/process/{ipc.md → ipc.mdx} +13 -10
- package/docs/guides/process/{nanoseconds.md → nanoseconds.mdx} +3 -1
- package/docs/guides/process/{os-signals.md → os-signals.mdx} +3 -1
- package/docs/guides/process/{spawn-stderr.md → spawn-stderr.mdx} +4 -1
- package/docs/guides/process/{spawn-stdout.md → spawn-stdout.mdx} +3 -1
- package/docs/guides/process/{spawn.md → spawn.mdx} +3 -1
- package/docs/guides/process/{stdin.md → stdin.mdx} +15 -7
- package/docs/guides/read-file/{arraybuffer.md → arraybuffer.mdx} +5 -3
- package/docs/guides/read-file/{buffer.md → buffer.mdx} +4 -2
- package/docs/guides/read-file/{exists.md → exists.mdx} +4 -2
- package/docs/guides/read-file/{json.md → json.mdx} +4 -2
- package/docs/guides/read-file/{mime.md → mime.mdx} +3 -1
- package/docs/guides/read-file/{stream.md → stream.mdx} +3 -1
- package/docs/guides/read-file/{string.md → string.mdx} +3 -1
- package/docs/guides/read-file/{uint8array.md → uint8array.mdx} +3 -1
- package/docs/guides/read-file/{watch.md → watch.mdx} +6 -8
- package/docs/guides/runtime/{build-time-constants.md → build-time-constants.mdx} +24 -22
- package/docs/guides/{install/cicd.md → runtime/cicd.mdx} +11 -7
- package/docs/guides/runtime/{codesign-macos-executable.md → codesign-macos-executable.mdx} +14 -9
- package/docs/guides/runtime/{define-constant.md → define-constant.mdx} +20 -16
- package/docs/guides/runtime/{delete-directory.md → delete-directory.mdx} +5 -3
- package/docs/guides/runtime/{delete-file.md → delete-file.mdx} +4 -2
- package/docs/guides/runtime/{heap-snapshot.md → heap-snapshot.mdx} +5 -3
- package/docs/guides/runtime/{import-html.md → import-html.mdx} +4 -2
- package/docs/guides/runtime/{import-json.md → import-json.mdx} +6 -4
- package/docs/guides/runtime/{import-toml.md → import-toml.mdx} +5 -3
- package/docs/guides/runtime/{import-yaml.md → import-yaml.mdx} +9 -7
- package/docs/guides/runtime/{read-env.md → read-env.mdx} +10 -5
- package/docs/guides/runtime/{set-env.md → set-env.mdx} +14 -10
- package/docs/guides/runtime/{shell.md → shell.mdx} +6 -4
- package/docs/guides/runtime/{timezone.md → timezone.mdx} +10 -7
- package/docs/guides/runtime/{tsconfig-paths.md → tsconfig-paths.mdx} +5 -3
- package/docs/guides/runtime/{typescript.md → typescript.mdx} +8 -6
- package/docs/guides/runtime/{vscode-debugger.md → vscode-debugger.mdx} +12 -11
- package/docs/guides/runtime/{web-debugger.md → web-debugger.mdx} +39 -18
- package/docs/guides/streams/{node-readable-to-arraybuffer.md → node-readable-to-arraybuffer.mdx} +3 -1
- package/docs/guides/streams/{node-readable-to-blob.md → node-readable-to-blob.mdx} +3 -1
- package/docs/guides/streams/{node-readable-to-json.md → node-readable-to-json.mdx} +3 -1
- package/docs/guides/streams/{node-readable-to-string.md → node-readable-to-string.mdx} +3 -1
- package/docs/guides/streams/{node-readable-to-uint8array.md → node-readable-to-uint8array.mdx} +3 -1
- package/docs/guides/streams/{to-array.md → to-array.mdx} +3 -1
- package/docs/guides/streams/{to-arraybuffer.md → to-arraybuffer.mdx} +3 -1
- package/docs/guides/streams/{to-blob.md → to-blob.mdx} +3 -1
- package/docs/guides/streams/{to-buffer.md → to-buffer.mdx} +3 -1
- package/docs/guides/streams/{to-json.md → to-json.mdx} +4 -2
- package/docs/guides/streams/{to-string.md → to-string.mdx} +3 -1
- package/docs/guides/streams/{to-typedarray.md → to-typedarray.mdx} +3 -1
- package/docs/guides/test/{bail.md → bail.mdx} +7 -5
- package/docs/guides/test/{coverage-threshold.md → coverage-threshold.mdx} +14 -7
- package/docs/guides/test/{coverage.md → coverage.mdx} +9 -4
- package/docs/guides/test/{happy-dom.md → happy-dom.mdx} +13 -8
- package/docs/guides/test/{migrate-from-jest.md → migrate-from-jest.mdx} +19 -37
- package/docs/guides/test/{mock-clock.md → mock-clock.mdx} +3 -1
- package/docs/guides/test/{mock-functions.md → mock-functions.mdx} +7 -5
- package/docs/guides/test/{rerun-each.md → rerun-each.mdx} +5 -3
- package/docs/guides/test/{run-tests.md → run-tests.mdx} +16 -11
- package/docs/guides/test/{skip-tests.md → skip-tests.mdx} +8 -4
- package/docs/guides/test/{snapshot.md → snapshot.mdx} +20 -13
- package/docs/guides/test/spy-on.mdx +49 -0
- package/docs/guides/test/{svelte-test.md → svelte-test.mdx} +16 -23
- package/docs/guides/test/{testing-library.md → testing-library.mdx} +18 -17
- package/docs/guides/test/{timeout.md → timeout.mdx} +5 -3
- package/docs/guides/test/{todo-tests.md → todo-tests.mdx} +13 -6
- package/docs/guides/test/{update-snapshots.md → update-snapshots.mdx} +9 -6
- package/docs/guides/test/{watch-mode.md → watch-mode.mdx} +9 -4
- package/docs/guides/util/{base64.md → base64.mdx} +3 -1
- package/docs/guides/util/{deep-equals.md → deep-equals.mdx} +5 -3
- package/docs/guides/util/{deflate.md → deflate.mdx} +3 -1
- package/docs/guides/util/{detect-bun.md → detect-bun.mdx} +3 -1
- package/docs/guides/util/{entrypoint.md → entrypoint.mdx} +4 -2
- package/docs/guides/util/{escape-html.md → escape-html.mdx} +3 -1
- package/docs/guides/util/{file-url-to-path.md → file-url-to-path.mdx} +3 -1
- package/docs/guides/util/{gzip.md → gzip.mdx} +3 -1
- package/docs/guides/util/{hash-a-password.md → hash-a-password.mdx} +3 -1
- package/docs/guides/util/{import-meta-dir.md → import-meta-dir.mdx} +4 -2
- package/docs/guides/util/{import-meta-file.md → import-meta-file.mdx} +4 -2
- package/docs/guides/util/{import-meta-path.md → import-meta-path.mdx} +4 -2
- package/docs/guides/util/{javascript-uuid.md → javascript-uuid.mdx} +3 -1
- package/docs/guides/util/{main.md → main.mdx} +19 -8
- package/docs/guides/util/{path-to-file-url.md → path-to-file-url.mdx} +3 -1
- package/docs/guides/util/{sleep.md → sleep.mdx} +3 -1
- package/docs/guides/util/{version.md → version.mdx} +6 -4
- package/docs/guides/util/{which-path-to-executable-bin.md → which-path-to-executable-bin.mdx} +4 -2
- package/docs/guides/websocket/{compression.md → compression.mdx} +5 -3
- package/docs/guides/websocket/{context.md → context.mdx} +9 -12
- package/docs/guides/websocket/{pubsub.md → pubsub.mdx} +5 -6
- package/docs/guides/websocket/{simple.md → simple.mdx} +5 -3
- package/docs/guides/write-file/{append.md → append.mdx} +3 -1
- package/docs/guides/write-file/{basic.md → basic.mdx} +3 -1
- package/docs/guides/write-file/{blob.md → blob.mdx} +3 -1
- package/docs/guides/write-file/{cat.md → cat.mdx} +4 -2
- package/docs/guides/write-file/{file-cp.md → file-cp.mdx} +3 -1
- package/docs/guides/write-file/{filesink.md → filesink.mdx} +3 -1
- package/docs/guides/write-file/{response.md → response.mdx} +3 -1
- package/docs/guides/write-file/{stdout.md → stdout.mdx} +3 -1
- package/docs/guides/write-file/{stream.md → stream.mdx} +3 -1
- package/docs/guides/write-file/{unlink.md → unlink.mdx} +3 -1
- package/docs/{index.md → index.mdx} +97 -41
- package/docs/installation.mdx +365 -0
- package/docs/{cli/bunx.md → pm/bunx.mdx} +25 -31
- package/docs/{install/catalogs.md → pm/catalogs.mdx} +18 -24
- package/docs/{cli/add.md → pm/cli/add.mdx} +61 -55
- package/docs/{install/audit.md → pm/cli/audit.mdx} +11 -8
- package/docs/{cli/install.md → pm/cli/install.mdx} +208 -81
- package/docs/{cli/link.md → pm/cli/link.mdx} +27 -19
- package/docs/{cli/outdated.md → pm/cli/outdated.mdx} +119 -12
- package/docs/{install/patch.md → pm/cli/patch.mdx} +25 -15
- package/docs/{cli/pm.md → pm/cli/pm.mdx} +96 -62
- package/docs/{cli/publish.md → pm/cli/publish.mdx} +38 -35
- package/docs/pm/cli/remove.mdx +16 -0
- package/docs/{cli/update.md → pm/cli/update.mdx} +26 -15
- package/docs/{cli/why.md → pm/cli/why.mdx} +27 -10
- package/docs/{cli/filter.md → pm/filter.mdx} +26 -14
- package/docs/{install/cache.md → pm/global-cache.mdx} +25 -12
- package/docs/{install/isolated.md → pm/isolated-installs.mdx} +32 -24
- package/docs/{install/lifecycle.md → pm/lifecycle.mdx} +20 -9
- package/docs/{install/lockfile.md → pm/lockfile.mdx} +18 -12
- package/docs/{install/npmrc.md → pm/npmrc.mdx} +30 -24
- package/docs/{install/overrides.md → pm/overrides.mdx} +47 -37
- package/docs/{install/registries.md → pm/scopes-registries.mdx} +8 -3
- package/docs/{install/security-scanner-api.md → pm/security-scanner-api.mdx} +22 -8
- package/docs/{install/workspaces.md → pm/workspaces.mdx} +17 -22
- package/docs/project/{benchmarking.md → benchmarking.mdx} +26 -11
- package/docs/project/{bindgen.md → bindgen.mdx} +12 -14
- package/docs/project/{building-windows.md → building-windows.mdx} +18 -47
- package/docs/project/{contributing.md → contributing.mdx} +56 -60
- package/docs/project/feedback.mdx +20 -0
- package/docs/project/license.mdx +78 -0
- package/docs/project/roadmap.mdx +8 -0
- package/docs/quickstart.mdx +240 -0
- package/docs/runtime/{autoimport.md → auto-install.mdx} +34 -31
- package/docs/{api/binary-data.md → runtime/binary-data.mdx} +77 -269
- package/docs/runtime/bun-apis.mdx +59 -0
- package/docs/runtime/{bunfig.md → bunfig.mdx} +95 -225
- package/docs/{api/cc.md → runtime/c-compiler.mdx} +16 -9
- package/docs/{api/spawn.md → runtime/child-process.mdx} +69 -119
- package/docs/{api/color.md → runtime/color.mdx} +6 -1
- package/docs/{api/console.md → runtime/console.mdx} +17 -7
- package/docs/{api/cookie.md → runtime/cookies.mdx} +24 -19
- package/docs/runtime/{debugger.md → debugger.mdx} +61 -51
- package/docs/runtime/environment-variables.mdx +214 -0
- package/docs/{api/ffi.md → runtime/ffi.mdx} +53 -45
- package/docs/{api/file-io.md → runtime/file-io.mdx} +41 -101
- package/docs/{api/file-system-router.md → runtime/file-system-router.mdx} +8 -2
- package/docs/{bundler/loaders.md → runtime/file-types.mdx} +56 -112
- package/docs/{api/glob.md → runtime/glob.mdx} +4 -1
- package/docs/runtime/globals.mdx +72 -0
- package/docs/{api/hashing.md → runtime/hashing.mdx} +18 -22
- package/docs/{api/html-rewriter.md → runtime/html-rewriter.mdx} +36 -30
- package/docs/runtime/http/cookies.mdx +79 -0
- package/docs/runtime/http/error-handling.mdx +40 -0
- package/docs/runtime/http/metrics.mdx +36 -0
- package/docs/runtime/http/routing.mdx +289 -0
- package/docs/runtime/http/server.mdx +647 -0
- package/docs/runtime/http/tls.mdx +101 -0
- package/docs/{api/websockets.md → runtime/http/websockets.mdx} +62 -231
- package/docs/{cli/run.md → runtime/index.mdx} +70 -108
- package/docs/runtime/jsx.mdx +115 -0
- package/docs/runtime/{modules.md → module-resolution.mdx} +83 -61
- package/docs/{api/dns.md → runtime/networking/dns.mdx} +23 -22
- package/docs/{api/fetch.md → runtime/networking/fetch.mdx} +10 -5
- package/docs/{api/tcp.md → runtime/networking/tcp.mdx} +59 -41
- package/docs/{api/udp.md → runtime/networking/udp.mdx} +14 -8
- package/docs/{api/node-api.md → runtime/node-api.mdx} +5 -0
- package/docs/runtime/{nodejs-apis.md → nodejs-compat.mdx} +9 -4
- package/docs/{bundler/plugins.md → runtime/plugins.mdx} +17 -61
- package/docs/{api/redis.md → runtime/redis.mdx} +65 -80
- package/docs/{api/s3.md → runtime/s3.mdx} +79 -66
- package/docs/{api/secrets.md → runtime/secrets.mdx} +27 -10
- package/docs/{api/semver.md → runtime/semver.mdx} +9 -4
- package/docs/runtime/{shell.md → shell.mdx} +52 -20
- package/docs/{api/sql.md → runtime/sql.mdx} +129 -99
- package/docs/{api/sqlite.md → runtime/sqlite.mdx} +162 -157
- package/docs/{api/streams.md → runtime/streams.mdx} +33 -31
- package/docs/{cli/bun-create.md → runtime/templating/create.mdx} +74 -143
- package/docs/{cli/init.md → runtime/templating/init.mdx} +24 -51
- package/docs/{api/transpiler.md → runtime/transpiler.mdx} +50 -38
- package/docs/{typescript.md → runtime/typescript.mdx} +7 -2
- package/docs/{api/utils.md → runtime/utils.mdx} +81 -50
- package/docs/runtime/{hot.md → watch-mode.mdx} +53 -37
- package/docs/runtime/web-apis.mdx +29 -0
- package/docs/{api/workers.md → runtime/workers.mdx} +28 -22
- package/docs/{api/yaml.md → runtime/yaml.mdx} +33 -232
- package/docs/snippets/cli/add.mdx +166 -0
- package/docs/snippets/cli/build.mdx +196 -0
- package/docs/snippets/cli/feedback.mdx +17 -0
- package/docs/snippets/cli/init.mdx +84 -0
- package/docs/snippets/cli/install.mdx +173 -0
- package/docs/snippets/cli/link.mdx +163 -0
- package/docs/snippets/cli/outdated.mdx +140 -0
- package/docs/snippets/cli/patch.mdx +171 -0
- package/docs/snippets/cli/publish.mdx +198 -0
- package/docs/snippets/cli/remove.mdx +146 -0
- package/docs/snippets/cli/run.mdx +293 -0
- package/docs/snippets/cli/test.mdx +100 -0
- package/docs/snippets/cli/update.mdx +144 -0
- package/docs/snippets/product-card.mdx +32 -0
- package/docs/snippets/product-tiles.mdx +94 -0
- package/docs/test/code-coverage.mdx +409 -0
- package/docs/test/configuration.mdx +467 -0
- package/docs/test/{time.md → dates-times.mdx} +23 -20
- package/docs/test/{discovery.md → discovery.mdx} +15 -10
- package/docs/test/dom.mdx +226 -0
- package/docs/{cli/test.md → test/index.mdx} +77 -94
- package/docs/test/lifecycle.mdx +348 -0
- package/docs/test/mocks.mdx +637 -0
- package/docs/test/{reporters.md → reporters.mdx} +15 -15
- package/docs/test/runtime-behavior.mdx +342 -0
- package/docs/test/snapshots.mdx +434 -0
- package/docs/test/writing-tests.mdx +635 -0
- package/docs/typescript.mdx +54 -0
- package/package.json +8 -6
- package/test.d.ts +2 -2
- package/docs/api/file.md +0 -19
- package/docs/api/globals.md +0 -387
- package/docs/api/http.md +0 -1408
- package/docs/api/import-meta.md +0 -69
- package/docs/benchmarks.md +0 -120
- package/docs/bun-flavored-toml.md +0 -42
- package/docs/bundler/css_modules.md +0 -145
- package/docs/bundler/fullstack.md +0 -418
- package/docs/bundler/index.md +0 -1735
- package/docs/bundler/intro.md +0 -75
- package/docs/bundler/vs-esbuild.md +0 -1127
- package/docs/cli/bun-completions.md +0 -3
- package/docs/cli/bun-install.md +0 -349
- package/docs/cli/bun-upgrade.md +0 -39
- package/docs/cli/info.md +0 -65
- package/docs/cli/patch-commit.md +0 -11
- package/docs/cli/remove.md +0 -7
- package/docs/cli/unlink.md +0 -9
- package/docs/contributing/upgrading-webkit.md +0 -57
- package/docs/ecosystem/elysia.md +0 -24
- package/docs/ecosystem/express.md +0 -37
- package/docs/ecosystem/hono.md +0 -18
- package/docs/ecosystem/react.md +0 -65
- package/docs/ecosystem/stric.md +0 -38
- package/docs/guides/ecosystem/prisma.md +0 -141
- package/docs/guides/ecosystem/render.md +0 -79
- package/docs/guides/install/add-git.md +0 -36
- package/docs/guides/test/spy-on.md +0 -46
- package/docs/install/index.md +0 -248
- package/docs/installation.md +0 -327
- package/docs/project/asan.md +0 -124
- package/docs/project/internals/build-process-for-ci.md +0 -75
- package/docs/project/licensing.md +0 -73
- package/docs/project/roadmap.md +0 -87
- package/docs/quickstart.md +0 -157
- package/docs/runtime/bun-apis.md +0 -207
- package/docs/runtime/env.md +0 -253
- package/docs/runtime/index.md +0 -312
- package/docs/runtime/jsx.md +0 -385
- package/docs/runtime/loaders.md +0 -130
- package/docs/runtime/plugins.md +0 -561
- package/docs/runtime/typescript.md +0 -139
- package/docs/runtime/web-apis.md +0 -128
- package/docs/test/configuration.md +0 -154
- package/docs/test/coverage.md +0 -142
- package/docs/test/dom.md +0 -75
- package/docs/test/examples/concurrent-test-glob.md +0 -132
- package/docs/test/hot.md +0 -15
- package/docs/test/lifecycle.md +0 -81
- package/docs/test/mocks.md +0 -313
- package/docs/test/runtime-behavior.md +0 -95
- package/docs/test/snapshots.md +0 -68
- package/docs/test/writing.md +0 -825
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
title: Write a file to stdout
|
|
3
|
+
sidebarTitle: Write file to stdout
|
|
4
|
+
mode: center
|
|
3
5
|
---
|
|
4
6
|
|
|
5
7
|
Bun exposes `stdout` as a `BunFile` with the `Bun.stdout` property. This can be used as a destination for [`Bun.write()`](https://bun.com/docs/api/file-io#writing-files-bun-write).
|
|
6
8
|
|
|
7
9
|
This code writes a file to `stdout` similar to the `cat` command in Unix.
|
|
8
10
|
|
|
9
|
-
```ts
|
|
11
|
+
```ts cat.ts icon="/icons/typescript.svg"
|
|
10
12
|
const path = "/path/to/file.txt";
|
|
11
13
|
const file = Bun.file(path);
|
|
12
14
|
await Bun.write(Bun.stdout, file);
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
title: Write a file incrementally
|
|
3
|
+
sidebarTitle: Incremental write
|
|
4
|
+
mode: center
|
|
3
5
|
---
|
|
4
6
|
|
|
5
7
|
Bun provides an API for incrementally writing to a file. This is useful for writing large files, or for writing to a file over a long period of time.
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
title: Write a Response to a file
|
|
3
|
+
sidebarTitle: Write Response
|
|
4
|
+
mode: center
|
|
3
5
|
---
|
|
4
6
|
|
|
5
7
|
This code snippet writes a `Response` to disk at a particular path. Bun will consume the `Response` body according to its `Content-Type` header.
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
title: Write a ReadableStream to a file
|
|
3
|
+
sidebarTitle: Write stream
|
|
4
|
+
mode: center
|
|
3
5
|
---
|
|
4
6
|
|
|
5
7
|
To write a `ReadableStream` to disk, first create a `Response` instance from the stream. This `Response` can then be written to disk using [`Bun.write()`](https://bun.com/docs/api/file-io#writing-files-bun-write).
|
|
@@ -1,36 +1,108 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Welcome to Bun
|
|
3
|
+
description: Bun is an all-in-one toolkit for developing modern JavaScript/TypeScript applications.
|
|
4
|
+
mode: center
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
<CardGroup>
|
|
8
|
+
<Card
|
|
9
|
+
icon="cog"
|
|
10
|
+
title="Bun Runtime"
|
|
11
|
+
href="/runtime"
|
|
12
|
+
cta={
|
|
13
|
+
<span>
|
|
14
|
+
Get started with <code>bun run</code>
|
|
15
|
+
</span>
|
|
16
|
+
}
|
|
17
|
+
>
|
|
18
|
+
A fast JavaScript runtime designed as a drop-in replacement for Node.js
|
|
19
|
+
</Card>
|
|
20
|
+
<Card
|
|
21
|
+
icon="box"
|
|
22
|
+
title="Bun Package Manager"
|
|
23
|
+
href="/pm/cli/install"
|
|
24
|
+
cta={
|
|
25
|
+
<span>
|
|
26
|
+
Get started with <code>bun install</code>
|
|
27
|
+
</span>
|
|
28
|
+
}
|
|
29
|
+
>
|
|
30
|
+
Install packages up to 30x faster than npm with a global cache and workspaces
|
|
31
|
+
</Card>
|
|
32
|
+
<Card
|
|
33
|
+
icon="flask-conical"
|
|
34
|
+
title="Bun Test Runner"
|
|
35
|
+
href="/test"
|
|
36
|
+
cta={
|
|
37
|
+
<span>
|
|
38
|
+
Get started with <code>bun test</code>
|
|
39
|
+
</span>
|
|
40
|
+
}
|
|
41
|
+
>
|
|
42
|
+
Jest-compatible, TypeScript-first tests with snapshots, DOM, and watch mode
|
|
43
|
+
</Card>
|
|
44
|
+
<Card
|
|
45
|
+
icon="combine"
|
|
46
|
+
title="Bun Bundler"
|
|
47
|
+
href="/bundler"
|
|
48
|
+
cta={
|
|
49
|
+
<span>
|
|
50
|
+
Get started with <code>bun build</code>
|
|
51
|
+
</span>
|
|
52
|
+
}
|
|
53
|
+
>
|
|
54
|
+
Bundle TypeScript, JSX, React & CSS for both browsers and servers
|
|
55
|
+
</Card>
|
|
56
|
+
</CardGroup>
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Get Started
|
|
61
|
+
|
|
62
|
+
Bun ships as a single, dependency-free binary and includes a runtime, package manager, test runner, and bundler. New to Bun?
|
|
63
|
+
|
|
64
|
+
<CardGroup>
|
|
65
|
+
<Card icon="download" title="Install Bun" href="/installation">
|
|
66
|
+
Supported platforms and all install methods.
|
|
67
|
+
</Card>
|
|
68
|
+
<Card icon="zap" title="Quickstart" href="/quickstart">
|
|
69
|
+
Hello world in minutes with Bun.serve.
|
|
70
|
+
</Card>
|
|
71
|
+
</CardGroup>
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## What's Inside
|
|
76
|
+
|
|
77
|
+
- Runtime: Execute JavaScript/TypeScript files and package scripts with near-zero overhead.
|
|
78
|
+
- Package Manager: Fast installs, workspaces, overrides, and audits with `bun install`.
|
|
79
|
+
- Test Runner: Jest-compatible, TypeScript-first tests with snapshots, DOM, and watch mode.
|
|
80
|
+
- Bundler: Native bundling for JS/TS/JSX with splitting, plugins, and HTML imports.
|
|
81
|
+
|
|
82
|
+
Explore each area using the cards above. Each section is structured with an overview, quick examples, reference, and best practices for fast scanning and deep dives.
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## What is Bun?
|
|
87
|
+
|
|
1
88
|
Bun is an all-in-one toolkit for JavaScript and TypeScript apps. It ships as a single executable called `bun`.
|
|
2
89
|
|
|
3
90
|
At its core is the _Bun runtime_, a fast JavaScript runtime designed as **a drop-in replacement for Node.js**. It's written in Zig and powered by JavaScriptCore under the hood, dramatically reducing startup times and memory usage.
|
|
4
91
|
|
|
5
|
-
```bash
|
|
6
|
-
|
|
92
|
+
```bash terminal icon="terminal"
|
|
93
|
+
bun run index.tsx # TS and JSX supported out of the box
|
|
7
94
|
```
|
|
8
95
|
|
|
9
96
|
The `bun` command-line tool also implements a test runner, script runner, and Node.js-compatible package manager, all significantly faster than existing tools and usable in existing Node.js projects with little to no changes necessary.
|
|
10
97
|
|
|
11
|
-
```bash
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
98
|
+
```bash terminal icon="terminal"
|
|
99
|
+
bun run start # run the `start` script
|
|
100
|
+
bun install <pkg> # install a package
|
|
101
|
+
bun build ./index.tsx # bundle a project for browsers
|
|
102
|
+
bun test # run tests
|
|
103
|
+
bunx cowsay 'Hello, world!' # execute a package
|
|
17
104
|
```
|
|
18
105
|
|
|
19
|
-
Get started with one of the quick links below, or read on to learn more about Bun.
|
|
20
|
-
|
|
21
|
-
{% block className="gap-2 grid grid-flow-row grid-cols-1 md:grid-cols-2" %}
|
|
22
|
-
{% arrowbutton href="/docs/installation" text="Install Bun" /%}
|
|
23
|
-
{% arrowbutton href="/docs/quickstart" text="Do the quickstart" /%}
|
|
24
|
-
{% arrowbutton href="/docs/cli/install" text="Install a package" /%}
|
|
25
|
-
{% arrowbutton href="/docs/cli/bun-create" text="Use a project template" /%}
|
|
26
|
-
{% arrowbutton href="/docs/bundler" text="Bundle code for production" /%}
|
|
27
|
-
{% arrowbutton href="/docs/api/http" text="Build an HTTP server" /%}
|
|
28
|
-
{% arrowbutton href="/docs/api/websockets" text="Build a Websocket server" /%}
|
|
29
|
-
{% arrowbutton href="/docs/api/file-io" text="Read and write files" /%}
|
|
30
|
-
{% arrowbutton href="/docs/api/sqlite" text="Run SQLite queries" /%}
|
|
31
|
-
{% arrowbutton href="/docs/cli/test" text="Write and run tests" /%}
|
|
32
|
-
{% /block %}
|
|
33
|
-
|
|
34
106
|
## What is a runtime?
|
|
35
107
|
|
|
36
108
|
JavaScript (or, more formally, ECMAScript) is just a _specification_ for a programming language. Anyone can write a JavaScript _engine_ that ingests a valid JavaScript program and executes it. The two most popular engines in use today are V8 (developed by Google)
|
|
@@ -42,21 +114,12 @@ But most JavaScript programs don't run in a vacuum. They need a way to access th
|
|
|
42
114
|
|
|
43
115
|
Notably, browsers ship with JavaScript runtimes that implement a set of Web-specific APIs that are exposed via the global `window` object. Any JavaScript code executed by the browser can use these APIs to implement interactive or dynamic behavior in the context of the current webpage.
|
|
44
116
|
|
|
45
|
-
<!-- JavaScript runtime that exposes JavaScript engines are designed to run "vanilla" JavaScript programs, but it's often JavaScript _runtimes_ use an engine internally to execute the code and implement additional APIs that are then made available to executed programs.
|
|
46
|
-
JavaScript was [initially designed](https://en.wikipedia.org/wiki/JavaScript) as a language to run in web browsers to implement interactivity and dynamic behavior in web pages. Browsers are the first JavaScript runtimes. JavaScript programs that are executed in browsers have access to a set of Web-specific global APIs on the `window` object. -->
|
|
47
|
-
|
|
48
117
|
### Node.js
|
|
49
118
|
|
|
50
119
|
Similarly, Node.js is a JavaScript runtime that can be used in non-browser environments, like servers. JavaScript programs executed by Node.js have access to a set of Node.js-specific [globals](https://nodejs.org/api/globals.html) like `Buffer`, `process`, and `__dirname` in addition to built-in modules for performing OS-level tasks like reading/writing files (`node:fs`) and networking (`node:net`, `node:http`). Node.js also implements a CommonJS-based module system and resolution algorithm that pre-dates JavaScript's native module system.
|
|
51
120
|
|
|
52
|
-
<!-- Bun.js prefers Web API compatibility instead of designing new APIs when possible. Bun.js also implements some Node.js APIs. -->
|
|
53
|
-
|
|
54
121
|
Bun is designed as a faster, leaner, more modern replacement for Node.js.
|
|
55
122
|
|
|
56
|
-
<!-- ## Why a new runtime?
|
|
57
|
-
|
|
58
|
-
Bun is designed as a faster, leaner, more modern replacement for Node.js. Node.js is burdened by ingrained performance issues, backwards compatibility concerns, and slow development velocity—inevitable issues for a project of its age and magnitude. -->
|
|
59
|
-
|
|
60
123
|
## Design goals
|
|
61
124
|
|
|
62
125
|
Bun is designed from the ground-up with today's JavaScript ecosystem in mind.
|
|
@@ -64,14 +127,7 @@ Bun is designed from the ground-up with today's JavaScript ecosystem in mind.
|
|
|
64
127
|
- **Speed**. Bun processes start [4x faster than Node.js](https://twitter.com/jarredsumner/status/1499225725492076544) currently (try it yourself!)
|
|
65
128
|
- **TypeScript & JSX support**. You can directly execute `.jsx`, `.ts`, and `.tsx` files; Bun's transpiler converts these to vanilla JavaScript before execution.
|
|
66
129
|
- **ESM & CommonJS compatibility**. The world is moving towards ES modules (ESM), but millions of packages on npm still require CommonJS. Bun recommends ES modules, but supports CommonJS.
|
|
67
|
-
- **Web-standard APIs**. Bun implements standard Web APIs like `fetch`, `WebSocket`, and `ReadableStream`. Bun is powered by the JavaScriptCore engine, which is developed by Apple for Safari, so some APIs like [`Headers`](https://developer.mozilla.org/en-US/
|
|
68
|
-
- **Node.js compatibility**. In addition to supporting Node-style module resolution, Bun aims for full compatibility with built-in Node.js globals (`process`, `Buffer`) and modules (`path`, `fs`, `http`, etc.) _This is an ongoing effort that is not complete._ Refer to the [compatibility page](
|
|
130
|
+
- **Web-standard APIs**. Bun implements standard Web APIs like `fetch`, `WebSocket`, and `ReadableStream`. Bun is powered by the JavaScriptCore engine, which is developed by Apple for Safari, so some APIs like [`Headers`](https://developer.mozilla.org/en-US/Web/API/Headers) and [`URL`](https://developer.mozilla.org/en-US/Web/API/URL) directly use [Safari's implementation](https://github.com/oven-sh/bun/blob/HEAD/src/bun.js/bindings/webcore/JSFetchHeaders.cpp).
|
|
131
|
+
- **Node.js compatibility**. In addition to supporting Node-style module resolution, Bun aims for full compatibility with built-in Node.js globals (`process`, `Buffer`) and modules (`path`, `fs`, `http`, etc.) _This is an ongoing effort that is not complete._ Refer to the [compatibility page](/runtime/nodejs-compat) for the current status.
|
|
69
132
|
|
|
70
133
|
Bun is more than a runtime. The long-term goal is to be a cohesive, infrastructural toolkit for building apps with JavaScript/TypeScript, including a package manager, transpiler, bundler, script runner, test runner, and more.
|
|
71
|
-
|
|
72
|
-
<!-- - tsconfig.json `"paths"` is natively supported, along with `"exports"` in package.json
|
|
73
|
-
- `fs`, `path`, and `process` from Node.js are partially implemented
|
|
74
|
-
- Web APIs like [`fetch`](https://developer.mozilla.org/en-US/docs/Web/API/fetch), [`Response`](https://developer.mozilla.org/en-US/docs/Web/API/Response), [`URL`](https://developer.mozilla.org/en-US/docs/Web/API/URL) and more are built-in
|
|
75
|
-
- [`HTMLRewriter`](https://developers.cloudflare.com/workers/runtime-apis/html-rewriter/) makes it easy to transform HTML in Bun.js
|
|
76
|
-
- `.env` files automatically load into `process.env` and `Bun.env`
|
|
77
|
-
- top level await -->
|
|
@@ -0,0 +1,365 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Installation
|
|
3
|
+
description: Install Bun
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Overview
|
|
7
|
+
|
|
8
|
+
Bun ships as a single, dependency-free executable. You can install it via script, package manager, or Docker across macOS, Linux, and Windows.
|
|
9
|
+
|
|
10
|
+
<Tip>After installation, verify with `bun --version` and `bun --revision`.</Tip>
|
|
11
|
+
|
|
12
|
+
## Installation
|
|
13
|
+
|
|
14
|
+
<Tabs>
|
|
15
|
+
<Tab title="macOS & Linux">
|
|
16
|
+
|
|
17
|
+
<CodeGroup>
|
|
18
|
+
```bash curl icon="globe"
|
|
19
|
+
curl -fsSL https://bun.com/install | bash
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
</CodeGroup>
|
|
23
|
+
<Note>
|
|
24
|
+
**Linux users** The `unzip` package is required to install Bun. Use `sudo apt install unzip` to install the unzip package. Kernel version 5.6 or higher is strongly recommended, but the minimum is 5.1. Use `uname -r` to check Kernel version.
|
|
25
|
+
</Note>
|
|
26
|
+
|
|
27
|
+
</Tab>
|
|
28
|
+
|
|
29
|
+
<Tab title="Windows">
|
|
30
|
+
<CodeGroup>
|
|
31
|
+
```powershell PowerShell icon="terminal"
|
|
32
|
+
powershell -c "irm bun.sh/install.ps1|iex"
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
</CodeGroup>
|
|
36
|
+
<Warning>
|
|
37
|
+
Bun requires Windows 10 version 1809 or later.
|
|
38
|
+
</Warning>
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
For support and discussion, please join the **#windows** channel on our [Discord](https://discord.gg/bun).
|
|
42
|
+
|
|
43
|
+
</Tab>
|
|
44
|
+
|
|
45
|
+
<Tab title="Package Managers">
|
|
46
|
+
<CodeGroup>
|
|
47
|
+
|
|
48
|
+
```bash npm icon="npm"
|
|
49
|
+
npm install -g bun # the last `npm` command you'll ever need
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
```bash Homebrew icon="/icons/homebrew.svg"
|
|
53
|
+
brew install oven-sh/bun/bun
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
```bash Scoop icon="terminal"
|
|
57
|
+
scoop install bun
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
</CodeGroup>
|
|
61
|
+
|
|
62
|
+
</Tab>
|
|
63
|
+
|
|
64
|
+
<Tab title="Docker">
|
|
65
|
+
Bun provides a Docker image that supports both Linux x64 and arm64.
|
|
66
|
+
|
|
67
|
+
```bash Docker icon="docker"
|
|
68
|
+
docker pull oven/bun
|
|
69
|
+
docker run --rm --init --ulimit memlock=-1:-1 oven/bun
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Image Variants
|
|
73
|
+
|
|
74
|
+
There are also image variants for different operating systems:
|
|
75
|
+
|
|
76
|
+
```bash Docker icon="docker"
|
|
77
|
+
docker pull oven/bun:debian
|
|
78
|
+
docker pull oven/bun:slim
|
|
79
|
+
docker pull oven/bun:distroless
|
|
80
|
+
docker pull oven/bun:alpine
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
</Tab>
|
|
84
|
+
</Tabs>
|
|
85
|
+
|
|
86
|
+
To check that Bun was installed successfully, open a new terminal window and run:
|
|
87
|
+
|
|
88
|
+
```bash terminal icon="terminal"
|
|
89
|
+
bun --version
|
|
90
|
+
# Output: 1.x.y
|
|
91
|
+
|
|
92
|
+
# See the precise commit of `oven-sh/bun` that you're using
|
|
93
|
+
bun --revision
|
|
94
|
+
# Output: 1.x.y+b7982ac13189
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
<Warning>
|
|
98
|
+
If you've installed Bun but are seeing a `command not found` error, you may have to manually add the installation
|
|
99
|
+
directory (`~/.bun/bin`) to your `PATH`.
|
|
100
|
+
</Warning>
|
|
101
|
+
|
|
102
|
+
<Accordion title="Add Bun to your PATH">
|
|
103
|
+
<Tabs>
|
|
104
|
+
<Tab title="macOS & Linux">
|
|
105
|
+
<Steps>
|
|
106
|
+
<Step title="Determine which shell you're using">
|
|
107
|
+
```bash terminal icon="terminal"
|
|
108
|
+
echo $SHELL
|
|
109
|
+
# /bin/zsh or /bin/bash or /bin/fish
|
|
110
|
+
```
|
|
111
|
+
</Step>
|
|
112
|
+
<Step title="Open your shell configuration file">
|
|
113
|
+
- For bash: `~/.bashrc`
|
|
114
|
+
- For zsh: `~/.zshrc`
|
|
115
|
+
- For fish: `~/.config/fish/config.fish`
|
|
116
|
+
</Step>
|
|
117
|
+
|
|
118
|
+
<Step title="Add the Bun directory to PATH">
|
|
119
|
+
Add this line to your configuration file:
|
|
120
|
+
```bash terminal icon="terminal"
|
|
121
|
+
export BUN_INSTALL="$HOME/.bun"
|
|
122
|
+
export PATH="$BUN_INSTALL/bin:$PATH"
|
|
123
|
+
```
|
|
124
|
+
</Step>
|
|
125
|
+
|
|
126
|
+
<Step title="Reload your shell configuration">
|
|
127
|
+
```bash terminal icon="terminal"
|
|
128
|
+
source ~/.bashrc # or ~/.zshrc
|
|
129
|
+
```
|
|
130
|
+
</Step>
|
|
131
|
+
</Steps>
|
|
132
|
+
</Tab>
|
|
133
|
+
<Tab title="Windows">
|
|
134
|
+
<Steps>
|
|
135
|
+
<Step title="Determine if the bun binary is properly installed">
|
|
136
|
+
```bash terminal icon="terminal"
|
|
137
|
+
& "$env:USERPROFILE\.bun\bin\bun" --version
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
If the command runs successfully but `bun --version` is not recognized, it means that bun is not in your system's PATH. To fix this, open a Powershell terminal and run the following command:
|
|
141
|
+
|
|
142
|
+
```bash terminal icon="terminal"
|
|
143
|
+
[System.Environment]::SetEnvironmentVariable(
|
|
144
|
+
"Path",
|
|
145
|
+
[System.Environment]::GetEnvironmentVariable("Path", "User") + ";$env:USERPROFILE\.bun\bin",
|
|
146
|
+
[System.EnvironmentVariableTarget]::User
|
|
147
|
+
)
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
</Step>
|
|
151
|
+
<Step title="Restart your terminal">
|
|
152
|
+
After running the command, restart your terminal and test with `bun --version`
|
|
153
|
+
|
|
154
|
+
```bash terminal icon="terminal"
|
|
155
|
+
bun --version
|
|
156
|
+
```
|
|
157
|
+
</Step>
|
|
158
|
+
</Steps>
|
|
159
|
+
</Tab>
|
|
160
|
+
|
|
161
|
+
</Tabs>
|
|
162
|
+
</Accordion>
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## Upgrading
|
|
167
|
+
|
|
168
|
+
Once installed, the binary can upgrade itself:
|
|
169
|
+
|
|
170
|
+
```bash terminal icon="terminal"
|
|
171
|
+
bun upgrade
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
<Tip>
|
|
175
|
+
**Homebrew users** <br />
|
|
176
|
+
To avoid conflicts with Homebrew, use `brew upgrade bun` instead.
|
|
177
|
+
|
|
178
|
+
**Scoop users** <br />
|
|
179
|
+
To avoid conflicts with Scoop, use `scoop update bun` instead.
|
|
180
|
+
|
|
181
|
+
</Tip>
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## Canary Builds
|
|
186
|
+
|
|
187
|
+
[-> View canary build](https://github.com/oven-sh/bun/releases/tag/canary)
|
|
188
|
+
|
|
189
|
+
Bun automatically releases an (untested) canary build on every commit to main. To upgrade to the latest canary build:
|
|
190
|
+
|
|
191
|
+
```bash terminal icon="terminal"
|
|
192
|
+
# Upgrade to latest canary
|
|
193
|
+
bun upgrade --canary
|
|
194
|
+
|
|
195
|
+
# Switch back to stable
|
|
196
|
+
bun upgrade --stable
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
The canary build is useful for testing new features and bug fixes before they're released in a stable build. To help the Bun team fix bugs faster, canary builds automatically upload crash reports to Bun's team.
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## Installing Older Versions
|
|
204
|
+
|
|
205
|
+
Since Bun is a single binary, you can install older versions by re-running the installer script with a specific version.
|
|
206
|
+
|
|
207
|
+
<Tabs>
|
|
208
|
+
<Tab title="Linux & macOS">
|
|
209
|
+
To install a specific version, pass the git tag to the install script:
|
|
210
|
+
|
|
211
|
+
```bash terminal icon="terminal"
|
|
212
|
+
curl -fsSL https://bun.com/install | bash -s "bun-v1.3.1"
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
</Tab>
|
|
216
|
+
<Tab title="Windows">
|
|
217
|
+
On Windows, pass the version number to the PowerShell install script:
|
|
218
|
+
|
|
219
|
+
```powershell PowerShell icon="windows"
|
|
220
|
+
iex "& {$(irm https://bun.com/install.ps1)} -Version 1.3.1"
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
</Tab>
|
|
224
|
+
</Tabs>
|
|
225
|
+
|
|
226
|
+
---
|
|
227
|
+
|
|
228
|
+
## Direct Downloads
|
|
229
|
+
|
|
230
|
+
To download Bun binaries directly, visit the [releases page on GitHub](https://github.com/oven-sh/bun/releases).
|
|
231
|
+
|
|
232
|
+
### Latest Version Downloads
|
|
233
|
+
|
|
234
|
+
<CardGroup cols={2}>
|
|
235
|
+
<Card
|
|
236
|
+
icon="/icons/linux.svg"
|
|
237
|
+
title="Linux x64"
|
|
238
|
+
href="https://github.com/oven-sh/bun/releases/latest/download/bun-linux-x64.zip"
|
|
239
|
+
>
|
|
240
|
+
Standard Linux x64 binary
|
|
241
|
+
</Card>
|
|
242
|
+
<Card
|
|
243
|
+
icon="/icons/linux.svg"
|
|
244
|
+
title="Linux x64 Baseline"
|
|
245
|
+
href="https://github.com/oven-sh/bun/releases/latest/download/bun-linux-x64-baseline.zip"
|
|
246
|
+
>
|
|
247
|
+
For older CPUs without AVX2
|
|
248
|
+
</Card>
|
|
249
|
+
<Card
|
|
250
|
+
icon="/icons/windows.svg"
|
|
251
|
+
title="Windows x64"
|
|
252
|
+
href="https://github.com/oven-sh/bun/releases/latest/download/bun-windows-x64.zip"
|
|
253
|
+
>
|
|
254
|
+
Standard Windows binary
|
|
255
|
+
</Card>
|
|
256
|
+
<Card
|
|
257
|
+
icon="/icons/windows.svg"
|
|
258
|
+
title="Windows x64 Baseline"
|
|
259
|
+
href="https://github.com/oven-sh/bun/releases/latest/download/bun-windows-x64-baseline.zip"
|
|
260
|
+
>
|
|
261
|
+
For older CPUs without AVX2
|
|
262
|
+
</Card>
|
|
263
|
+
<Card
|
|
264
|
+
icon="/icons/apple.svg"
|
|
265
|
+
title="macOS ARM64"
|
|
266
|
+
href="https://github.com/oven-sh/bun/releases/latest/download/bun-darwin-aarch64.zip"
|
|
267
|
+
>
|
|
268
|
+
Apple Silicon (M1/M2/M3)
|
|
269
|
+
</Card>
|
|
270
|
+
<Card
|
|
271
|
+
icon="/icons/apple.svg"
|
|
272
|
+
title="macOS x64"
|
|
273
|
+
href="https://github.com/oven-sh/bun/releases/latest/download/bun-darwin-x64.zip"
|
|
274
|
+
>
|
|
275
|
+
Intel Macs
|
|
276
|
+
</Card>
|
|
277
|
+
<Card
|
|
278
|
+
icon="/icons/linux.svg"
|
|
279
|
+
title="Linux ARM64"
|
|
280
|
+
href="https://github.com/oven-sh/bun/releases/latest/download/bun-linux-aarch64.zip"
|
|
281
|
+
>
|
|
282
|
+
ARM64 Linux systems
|
|
283
|
+
</Card>
|
|
284
|
+
</CardGroup>
|
|
285
|
+
|
|
286
|
+
### Musl Binaries
|
|
287
|
+
|
|
288
|
+
For distributions without `glibc` (Alpine Linux, Void Linux):
|
|
289
|
+
|
|
290
|
+
- [Linux x64 musl](https://github.com/oven-sh/bun/releases/latest/download/bun-linux-x64-musl.zip)
|
|
291
|
+
- [Linux x64 musl baseline](https://github.com/oven-sh/bun/releases/latest/download/bun-linux-x64-musl-baseline.zip)
|
|
292
|
+
- [Linux ARM64 musl](https://github.com/oven-sh/bun/releases/latest/download/bun-linux-aarch64-musl.zip)
|
|
293
|
+
|
|
294
|
+
<Note>
|
|
295
|
+
If you encounter an error like `bun: /lib/x86_64-linux-gnu/libm.so.6: version GLIBC_2.29 not found`, try using the
|
|
296
|
+
musl binary. Bun's install script automatically chooses the correct binary for your system.
|
|
297
|
+
</Note>
|
|
298
|
+
|
|
299
|
+
---
|
|
300
|
+
|
|
301
|
+
## CPU Requirements
|
|
302
|
+
|
|
303
|
+
Bun has specific CPU requirements based on the binary you're using:
|
|
304
|
+
|
|
305
|
+
<Tabs>
|
|
306
|
+
<Tab title="Standard Builds">
|
|
307
|
+
**x64 binaries** target the Haswell CPU architecture (AVX and AVX2 instructions required)
|
|
308
|
+
| Platform | Intel Requirement | AMD Requirement |
|
|
309
|
+
|----------|-------------------|-----------------|
|
|
310
|
+
| x64 | Haswell (4th gen Core) or newer | Excavator or newer |
|
|
311
|
+
</Tab>
|
|
312
|
+
|
|
313
|
+
<Tab title="Baseline Builds">
|
|
314
|
+
**x64-baseline binaries** target the Nehalem architecture for older CPUs
|
|
315
|
+
| Platform | Intel Requirement | AMD Requirement |
|
|
316
|
+
|----------|-------------------|-----------------|
|
|
317
|
+
| x64-baseline | Nehalem (1st gen Core) or newer | Bulldozer or newer |
|
|
318
|
+
|
|
319
|
+
<Warning>
|
|
320
|
+
Baseline builds are slower than regular builds. Use them only if you encounter an "Illegal
|
|
321
|
+
Instruction" error.
|
|
322
|
+
</Warning>
|
|
323
|
+
</Tab>
|
|
324
|
+
|
|
325
|
+
</Tabs>
|
|
326
|
+
|
|
327
|
+
<Note>
|
|
328
|
+
Bun does not support CPUs older than the baseline target, which mandates the SSE4.2 extension. macOS requires version
|
|
329
|
+
13.0 or later.
|
|
330
|
+
</Note>
|
|
331
|
+
|
|
332
|
+
---
|
|
333
|
+
|
|
334
|
+
## Uninstall
|
|
335
|
+
|
|
336
|
+
To remove Bun from your system:
|
|
337
|
+
|
|
338
|
+
<Tabs>
|
|
339
|
+
<Tab title="macOS & Linux">
|
|
340
|
+
```bash terminal icon="terminal"
|
|
341
|
+
rm -rf ~/.bun
|
|
342
|
+
```
|
|
343
|
+
</Tab>
|
|
344
|
+
|
|
345
|
+
<Tab title="Windows">
|
|
346
|
+
```powershell PowerShell icon="windows"
|
|
347
|
+
powershell -c ~\.bun\uninstall.ps1
|
|
348
|
+
```
|
|
349
|
+
</Tab>
|
|
350
|
+
|
|
351
|
+
<Tab title="Package Managers">
|
|
352
|
+
<CodeGroup>
|
|
353
|
+
```bash npm icon="npm"
|
|
354
|
+
npm uninstall -g bun
|
|
355
|
+
```
|
|
356
|
+
```bash Homebrew icon="/icons/homebrew.svg"
|
|
357
|
+
brew uninstall bun
|
|
358
|
+
```
|
|
359
|
+
```bash Scoop icon="terminal"
|
|
360
|
+
scoop uninstall bun
|
|
361
|
+
```
|
|
362
|
+
</CodeGroup>
|
|
363
|
+
</Tab>
|
|
364
|
+
|
|
365
|
+
</Tabs>
|