bun README

The project's README from github.com/oven-sh/bun. As one markdown file: 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 Rust 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

Guides

bun (oven-sh/bun)

bundler
Searching Database…

96.3K ·GitHub
What is this?Bun is an all-in-one JavaScript and TypeScript toolkit that bundles a runtime, bundler, test runner, and package manager into a single executable called bun.
Is this a replacement for Node.js, or something I add on top of it?Bun's core is a drop-in replacement for the Node.js runtime, written in Rust and powered by JavaScriptCore instead of V8, so it runs most existing Node projects with little to no changes.
How do I install it and start using it?Install the single bun executable for your OS, then run scripts with 'bun run', manage packages with 'bun install/add', and bundle with 'Bun.build'.
Do I need Node.js or npm installed first?No, Bun replaces them: it has its own npm-compatible package manager and a Node.js-compatible runtime, so you don't need Node or npm installed separately.
Any gotchas before I switch my project over?On Linux, kernel 5.6+ is strongly recommended (5.1 minimum), and some CPUs may hit 'illegal instruction' errors if requirements aren't met; check Bun's CPU requirements doc if that happens.
How do I stay up to date with new releases?Run the upgrade command to get the latest stable release; Bun also publishes a canary build automatically on every commit to main for testing newer changes.
Does Bun include its own server and database APIs?Yes, it ships built-in APIs like Bun.serve for HTTP servers, WebSockets, bun:sqlite, Bun.sql for PostgreSQL, Bun.redis, and an S3 client, among many others.
Can I use Bun for React or JSX projects?Yes, Bun has built-in JSX support and documented guides for using React, Next.js, Vite, Remix, Astro, and other frontend frameworks with Bun.
What can the built-in test runner and bundler do?bun test runs tests with mocks, snapshots, and code coverage built in, while Bun.build bundles JavaScript/TypeScript, CSS, and HTML, and can even produce a single-file executable.
What are similar projects?rspack, esbuild, oxc, tsx, closure-compiler, WasmEdge, scriptc, browserify
Creator
oven-sh
Size
1.2 GB
Stars
96.3K
Age
5y
Commits · 90 Days