Files
vac-optimizer/docs/adr/0009-bun-runtime-and-native-tooling.md
T
nessarandClaude Opus 5.5 558c70aa24 docs(adr): record Bun 1.4.3 verification results and decisions
Stable Bun 1.4.3 runs installs, the development server, standalone type
checks, the native test runner and a Bun.serve static server. Native
lint/fmt are canary-only, and Angular's server build needs Node loader
hooks Bun does not apply, so the spec now keeps ESLint/Prettier until a
stable release, builds Angular client-only behind a Bun static server,
converts line coverage from lcov, and replaces the heap cap with a
container memory limit.

Refs #289

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 12:49:17 +02:00

1.3 KiB

status
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 records the agreed boundaries, acceptance criteria, and remaining verification.