← All open source projects

Bun

oven-sh/bun

Bun is an all-in-one toolkit for JavaScript and TypeScript: runtime, package manager, script runner, tests, and bundling in one executable.

Forks 4,693
Author oven-sh
Language Rust
License NOASSERTION
Synced 2026-06-09

What it is

Bun is an attempt to collect everyday JavaScript tooling into one fast executable. It includes a runtime, package manager, script runner, test runner, TypeScript and JSX support, and compatibility with a large part of the Node.js world.

The project is written in Zig and uses JavaScriptCore. Its point is not only speed, but also reducing the number of separate tools: instead of node, npm, npx, a test runner, and bundler pieces, developers can try one binary.

What is inside and how people use it

Inside are the runtime, package manager, tests, documentation, Node.js API compatibility work, file loaders, lockfile behavior, and integrations. Bun can be used in new projects, and some commands work in existing Node.js applications.

One binary for several jobs

This example shows how Bun tries to replace several familiar Node.js development commands.

Language: Bash
bun install
bun run start
bun test
bun run index.tsx
bunx cowsay "Hello, world!

A typical flow is installing dependencies with `bun install`, running scripts with `bun run`, executing TypeScript files directly, and running tests with `bun test`. For teams, this can speed up local development and simplify the toolchain.

Strengths and limitations

The strength of Bun is completeness and startup speed. It is attractive where teams want less configuration and faster everyday operations.

The limitation is compatibility. The Node.js ecosystem is enormous, and not every package or rare API behaves identically. Before moving a large project, run tests, builds, server paths, and CI.