All 232 Dependencies
Every package Bun depends on, ranked by repo health score.
Bun is a single executable that bundles together everything a JavaScript or TypeScript project usually needs several separate tools for: a runtime, a bundler, a test runner, and an npm-compatible package manager. It positions itself as a drop-in replacement for Node.js, running most existing Node.js and npm packages with little or no modification while executing `.ts`/`.tsx` files directly, without a separate build step.
Under the hood, Bun is written primarily in Rust with C++ for the JavaScriptCore bindings, and it embeds WebKit's JavaScriptCore engine rather than V8. This is a significant architectural fact worth noting explicitly: Bun's core was originally written in Zig, but the project has since completed a full migration to a Cargo workspace of roughly 200 Rust crates, with C++ retained only for the JavaScriptCore/WebKit integration layer. The GitHub-reported primary language and the project's own CLAUDE.md both confirm Rust as the current implementation language.
Beyond the runtime, Bun ships a native bundler (`Bun.build`) that handles JS/TS/JSX/CSS/HTML with tree-shaking and code-splitting as a faster alternative to esbuild or webpack; a Jest-API-compatible test runner (`bun test`) built into the binary; and a package manager (`bun install`) with its own binary lockfile, workspaces, catalogs, and patch support. It also includes less common built-ins such as a cross-platform embedded POSIX-like shell (`Bun.$`), native SQLite/Postgres/MySQL clients, WebCrypto and `node:crypto` implementations, and the ability to compile a project into a single dependency-free executable with `bun build --compile`.
The project is backed by Oven and has grown into one of the most active runtime projects on GitHub, with a large BuildKite-driven CI pipeline that includes clippy, Miri, ASAN builds, and cross-platform smoke tests across Linux, macOS, and Windows on x64 and arm64.