bun-runtime
Installation
SKILL.md
Bun Runtime
Bun is a fast all-in-one JavaScript runtime and toolkit: runtime, package manager, bundler, and test runner.
When to Use
- Prefer Bun for: new JS/TS projects, scripts where install/run speed matters, Vercel deployments with Bun runtime, and when you want a single toolchain (run + install + test + build).
- Prefer Node for: maximum ecosystem compatibility, legacy tooling that assumes Node, or when a dependency has known Bun issues.
Use when: adopting Bun, migrating from Node, writing or debugging Bun scripts/tests, or configuring Bun on Vercel or other platforms.
How It Works
- Version baseline: guidance below targets Bun 1.4.x. Check the actual version with
bun --versionbefore relying on flag names, since CLI flags can change between releases. - Runtime: Drop-in Node-compatible runtime, built on JavaScriptCore. As of Bun 1.4 the runtime itself is implemented in Rust (migrated from Zig). Not 100% Node-compatible — some native addons, less-common
node:internal APIs, and packages that depend on Node-specific internals can still fail; verify before depending on it in production. - Package manager: Bun includes a package manager; installation performance depends on the project, network conditions, and cache state. Lockfile is
bun.lock(text) by default in current Bun; older versions usedbun.lockb(binary) — Bun still reads that format for migration, but new projects should usebun.lock. - Bundler: Built-in bundler and transpiler for apps and libraries.
- Test runner: Built-in
bun testwith a Jest-like API.