--- status: proposed --- # Bun Runtime and Native Tooling VacOptimizer will use Bun as the runtime for project-owned JavaScript in development, CI, and production, adopting its native test runner, linter, formatter, type checker, and HTTP server even without measured performance gains. This deliberately accepts Bun-specific tooling and migration work while retaining Angular's standard compiler and build pipeline, including TypeScript 6 for Angular compilation alongside `bun check` for standalone TypeScript checking. Verification on stable Bun 1.4.3 narrowed this: ESLint and Prettier stay, run by Bun, until a stable release ships the native linter and formatter; Angular builds a client-only bundle, because its server build relies on Node loader hooks Bun does not apply, and a small `Bun.serve` server delivers it, giving up `@angular/ssr`; coverage is line-level, converted from lcov to the existing HTML and Cobertura reports; and the benchmark's heap cap becomes a container memory limit. Existing behavior, tests, lint rules, coverage reporting, and benchmark budgets must be preserved; incompatibilities must be fixed or reported as blockers before declaring completion, and a Node.js fallback does not meet the runtime requirement. The [development spec](../bun-adoption.md) records the agreed boundaries, acceptance criteria, and remaining verification.