Incredibly fast JavaScript runtime, bundler, transpiler and package manager – all in one.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Solomon ogu cd7f6a1589
fix: typo in docs and types for sqlite (#13727)
3 days ago
.buildkite temporary disable this 2 weeks ago
.docker [misc] Remove irrelevant scripts 2 years ago
.github Introduce fast path for buffered ReadableStream (#13704) 4 days ago
.vscode Add 59 more node tests + copy node test fixtures (#13495) 2 weeks ago
bench run prettier and add back format action (#13722) 4 days ago
completions `bun outdated` docs (#13497) 2 weeks ago
dockerhub Define BUN_INSTALL_BIN in Dockerfiles 5 months ago
docs fix: typo in docs and types for sqlite (#13727) 3 days ago
examples Automatically hot reload Bun.serve() (#4344) 1 year ago
misctools fix(http) timeout (#12728) 2 months ago
packages fix: typo in docs and types for sqlite (#13727) 3 days ago
scripts Use -mmacos-version-min instead of -mmacosx-version-min (#13640) 7 days ago
src Introduce fast path for buffered ReadableStream (#13704) 4 days ago
test Introduce fast path for buffered ReadableStream (#13704) 4 days ago
.clangd refactor: ban `std.debug.assert` (#10168) 5 months ago
.dockerignore feat: Windows + CMake Build System (#4410) 11 months ago
.editorconfig Bring uSockets & uWebSockets forks into Bun's repository (#4372) 1 year ago
.gitattributes Add 59 more node tests + copy node test fixtures (#13495) 2 weeks ago
.gitignore try using LLVM 18 on macOS (#12727) 2 months ago
.gitmodules libdeflate (#12741) 2 months ago
.lldbinit fix(bundler): put unwrapped cjs imports at top level for minifyrenamer (#12951) 1 month ago
.prettierignore run prettier and add back format action (#13722) 4 days ago
.prettierrc fix vscode json handling in prettier (#10133) 5 months ago
.prettierrc-ci run prettier and add back format action (#13722) 4 days ago
CMakeLists.txt Bump WebKit again (#13641) 1 week ago
CODE_OF_CONDUCT.md Add a code of conduct 2 years ago
CONTRIBUTING.md Change contributing docs to use llvm 18 on macos (#13651) 7 days ago
Dockerfile Fix LTO setting on Linux 1 month ago
LATEST Bump to 1.1.26 (#13504) 2 weeks ago
LICENSE.md libdeflate (#12741) 2 months ago
Makefile Use -mmacos-version-min instead of -mmacosx-version-min (#13640) 7 days ago
README.md Remove outdated callout 6 days ago
SECURITY.md Create SECURITY.md 1 year ago
build.zig Bump build.zig minimum to macOS 13 (#13639) 1 week ago
bun.lockb run prettier and add back format action (#13722) 4 days ago
bunfig.toml Add `BUN_DEBUG` flag to control where debug logs go (#9019) 7 months ago
entitlements.debug.plist Create entitlements.debug.plist 3 years ago
entitlements.plist New subcommand: `bun upgrade`. It upgrades bun to the latest version. 3 years ago
jsconfig.json run prettier and add back format action (#13722) 4 days ago
package.json run prettier and add back format action (#13722) 4 days ago
root.zig Rename `bun.zig` to `BunObject.zig` (#8344) 8 months ago
root_wasm.zig WASM test analyzer (#4043) 1 year ago
tsconfig.base.json Better types (#7670) 9 months ago
tsconfig.json Better types (#7670) 9 months ago
workspace.code-workspace go 3 years ago

README.md

Logo

Bun

stars Bun speed

Documentation      Discord      Issues      Roadmap

Read the docs →

What is Bun?

Bun is an all-in-one toolkit for JavaScript and TypeScript apps. It ships as a single executable called bun.

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.

bun run index.tsx             # TS and JSX supported out-of-the-box

The bun command-line tool also implements a test runner, script runner, and Node.js-compatible package manager. Instead of 1,000 node_modules for development, you only need bun. Bun's built-in tools are significantly faster than existing options and usable in existing Node.js projects with little to no changes.

bun test                      # run tests
bun run start                 # run the `start` script in `package.json`
bun install <pkg>             # install a package
bunx cowsay 'Hello, world!'   # execute a package

Install

Bun supports Linux (x64 & arm64), macOS (x64 & Apple Silicon) and Windows (x64).

Linux users — Kernel version 5.6 or higher is strongly recommended, but the minimum is 5.1.

# with install script (recommended)
curl -fsSL https://bun.sh/install | bash

# on windows
powershell -c "irm bun.sh/install.ps1 | iex"

# with npm
npm install -g bun

# with Homebrew
brew tap oven-sh/bun
brew install bun

# with Docker
docker pull oven/bun
docker run --rm --init --ulimit memlock=-1:-1 oven/bun

Upgrade

To upgrade to the latest version of Bun, run:

bun upgrade

Bun automatically releases a canary build on every commit to main. To upgrade to the latest canary build, run:

bun upgrade --canary

View canary build

Guides

Contributing

Refer to the Project > Contributing guide to start contributing to Bun.

License

Refer to the Project > License page for information about Bun's licensing.