๐Ÿ“ฆ oven-sh / bun

Incredibly fast JavaScript runtime, bundler, test runner, and package manager โ€“ all in one

โ˜… 87.9k stars โ‘‚ 4.1k forks ๐Ÿ‘ 87.9k watching โš–๏ธ Other
bunbundlerjavascriptjavascriptcorejsxnodejsnpmreacttranspilertypescriptzigziglang
๐Ÿ“ฅ Clone https://github.com/oven-sh/bun.git
HTTPS git clone https://github.com/oven-sh/bun.git
SSH git clone git@github.com:oven-sh/bun.git
CLI gh repo clone oven-sh/bun
Loading files...
๐Ÿ“„ 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 & arm64).

Linux users โ€” Kernel version 5.6 or higher is strongly recommended, but the minimum is 5.1.
x64 users โ€” if you see "illegal instruction" or similar errors, check our CPU requirements

# with install script (recommended)
curl -fsSL https://bun.com/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

Quick links

  • Intro
  • Templating
  • CLI
  • Runtime
  • Package manager
  • Bundler
  • Test runner
  • Package runner
  • API

Guides

  • Binary
  • Ecosystem
  • HTMLRewriter
  • HTTP
  • Install
  • Process
  • Read file
  • Runtime
  • Streams
  • Test
  • Util
  • WebSocket
  • Write file

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.