Key details

  1. Release: Bun v1.4.4, October 22, 2026.
  2. New built-in bun fmt supports --check, --staged, --changed, existing Prettier and oxfmt configurations, and common frontend languages.
  3. Bun vendor benchmark: 59.7 ms versus 17.1 seconds on Prettier's own 2,616-file repository; not independently reproduced.
  4. Bun's own output tests: 9,648/9,731 Prettier fixtures identical, but only 57/74 full Prettier-repository comparisons identical.
  5. Unsupported formatter plugins or Babel-only syntax can block adoption; bun format remains the package script invocation.
  6. Yarn 2+ Berry lockfiles migrate with pinned dependency versions retained.
  7. Bun reports faster bun check and broad protocol/client security fixes.

What builders should take away

  1. Try bun fmt --check on an existing branch before replacing Prettier or oxfmt; review changed files and unsupported plugins.
  2. Pin Bun and compare output on the repository's actual config, including generated files and Markdown.
  3. Use bun fmt --staged in a pre-commit hook only after validating file selection and re-staging behaviour.
  4. For Yarn Berry migration, diff bun.lock against the old resolution graph and test reproducible installs.
  5. Treat Bun's speedup figures as vendor measurements until independently reproduced in your workload.

What changed

On October 22, 2026, Bun released v1.4.4 with bun fmt, a built-in formatter covering JavaScript, TypeScript, JSX, CSS, HTML, Vue, Svelte, JSON, YAML, TOML, Markdown and other formats. It reads existing Prettier and oxfmt configurations and supports --check, --staged and --changed workflows. The release also speeds up the built-in bun check TypeScript checker, migrates Yarn 2+ (Berry) lockfiles without re-resolving pinned dependencies, and includes security and runtime fixes. This is distinct from Bun 1.4.3's initial built-in type checker.

Why it matters

Formatting is a recurring cost in developer workflows and CI, particularly in large repositories. Integrating it into a runtime can remove an extra formatter dependency and make pre-commit checks practical on large trees. But compatible configuration does not guarantee byte-identical output: formatter swaps can create noisy diffs or fail on syntax and plugins. Bun users can evaluate consolidation without automatically rewriting the codebase.

Formatter reuse without a wholesale config rewrite

bun fmt reads .prettierrc, prettier.config, .editorconfig, .prettierignore and oxfmt configuration. It includes Tailwind class sorting, Svelte formatting and package.json key sorting, and can format staged files and restage them for Git hooks. Some unsupported Prettier plugins trigger an error and exit code 2, while languages needing an installed plugin such as Astro can fall back to Prettier. The older bun format command still runs a project's format script, so scripts and direct CLI invocations are not interchangeable.

Speed is promising, but the headline numbers are Bun's

Bun reports bun fmt --check taking 59.7 ms versus 17.1 seconds for Prettier 3.9.10 on Prettier's 2,616-file repository, using 48 MB rather than 459 MB peak memory. It publishes pinned commits and reproduction commands. The same release reports 3–6x speedups on several oxfmt workloads, with one fumadocs comparison much higher. Independent articles corroborate the release and note the caveats but do not provide independent reproduction of those timings. Hardware, cache warmth, project composition and options matter.

Configuration compatibility is not output identity

Bun says 9,648 of 9,731 Prettier fixture tests produce identical output, but across 74 real repositories using Prettier only 57 full runs (77%) were byte-for-byte identical. Differences include older formatter versions, plugins, Markdown and unsupported syntax; in one Next.js test one Babel-only proposal file prevented an otherwise mostly identical run. For existing repositories, compare git diffs and run bun fmt --check and --debug-check on a pinned version before switching CI.

Lockfiles and type checking also change

bun install now migrates Yarn Berry lockfiles, retaining pinned versions rather than re-resolving the dependency graph, including workspaces and aliases. Bun also reports substantial improvements to bun check on larger repositories and monorepo project-reference builds, alongside broad TLS, WebSocket, database-client and package-manager security fixes. The release does not by itself establish that a particular earlier vulnerability is remediated without a specific advisory.

What to watch next

  • Independent cross-platform benchmarks and compatibility testing of bun fmt.
  • Formatter plugin and syntax coverage in subsequent releases.
  • Whether large projects actually remove separate formatter dependencies without churn.
  • Security advisories tying the broad 1.4.4 fixes to specific affected versions and CVEs.

Still unclear

  • No independently reproduced timing benchmark was located for the release.
  • Byte-identical compatibility varies by project, config, plugin and language.
  • Broad security-fix descriptions are not a substitute for CVE-specific remediation evidence.

Sources

Direct reading behind this dossier.

3 sources
Bun v1.4.4 release notes
Bun primary_release

Canonical feature, configuration, benchmark methods, compatibility data and migration details.

Discussion

Discussion is reader-contributed. Comments are not part of the BTN dossier or its editorial evidence.

0 visible comments

Join the discussion

Keep comments useful and relevant. Reader contributions may be moderated and are not BTN editorial evidence.

Sign in to comment