M-O0O-M/2-bun
Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one
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
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.
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.com/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
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
Intro
Templating
CLI
Runtime
Package manager
Bundler
Test runner
Package runner
API
Bun.serve)Bun.file)bun:sqlite)Bun.sql)Bun.redis)Bun.s3)Bun.Transpiler)Bun.color)bun:ffi)bun:ffi cc)bun:test)Bun.Cookie)Bun.Glob)Bun.semver)Binary
Ecosystem
HTMLRewriter
HTTP
Install
Process
Read file
Runtime
Streams
Test
bun testbun testbun testbun testUtil
WebSocket
Write file
Refer to the Project > Contributing guide to start contributing to Bun.
Refer to the Project > License page for information about Bun's licensing.