Bun 1.4.4 Adds bun fmt, a Built-In Prettier-Compatible Formatter That Bun Says Runs 286x Faster Than Prettier on Prettier's Own Repository
Bun's v1.4.4 release adds a built-in code formatter, bun fmt; Bun's own benchmark lists 59.7 ms against 17.1 s for Prettier on Prettier's repository.
Overview
Bun v1.4.4 introduces bun fmt, a formatter built into the runtime. According to the Bun blog post for v1.4.4, written by Jarred Sumner and dated October 22, 2026, “bun fmt is an incredibly fast, Prettier-compatible code formatter that works with your existing Prettier or oxfmt config.” The release is also listed on GitHub as Bun v1.4.4. All performance and compatibility figures below are Bun’s own, taken from that blog post, and were not independently reproduced.
What We Know
Languages covered. The Bun blog says the formatter handles JavaScript, TypeScript, JSX, Flow, CSS, SCSS, Less, HTML, Vue, Svelte, Angular, Lightning Web Components, MJML, JSON, JSONC, JSON5, YAML, TOML, Markdown, MDX, GraphQL and Handlebars, and that embedded code such as <style> in HTML and code blocks in Markdown is formatted too.
Speed claims. On Prettier’s own repository (2,616 files, with their config), the Bun blog reports that bun fmt --check takes 59.7 ms with 48 MB of peak memory, against 17.1 s and 459 MB for Prettier 3.9.10. The post calls that 286x faster and says that on vitest, date-fns, monkeytype and h3 it is “234x to 425x faster than Prettier 3.9.9.” For projects that already use oxfmt, the post reports “3x to 6x faster than oxfmt 0.74.0” in a table covering RSSHub, redocly-cli, vite and fumadocs; the fumadocs row is listed at 31x. A second table, restricted to one core, lists gains of 1.7x to 21x. The post names its hardware: a 16-core M4 Max MacBook Pro for the vite run and an Intel Xeon Platinum 8488C for the others.
Configuration. Per the post, bun fmt reads .prettierrc*, prettier.config.*, a "prettier" key in package.json, .editorconfig and .prettierignore, and also .oxfmtrc.json, .oxfmtrc.jsonc and oxfmt.config.ts (or .mts). It offers --check, --staged and --changed modes, and import sorting is built in. If a config uses a plugin that bun fmt does not support, such as prettier-plugin-jsdoc, the post says it prints an error naming the plugin, skips the files that plugin applies to and exits with code 2.
Lineage. The post states: “It’s a port of Prettier, and the JavaScript and TypeScript printer is a port of oxc_formatter, which is a port of Biome’s formatter.” It thanks the Prettier, Biome and Oxc teams.
Compatibility figures. Bun says its CI runs Prettier 3.9.9’s own formatting tests on every commit, and its table totals 9,731 tests of which 9,648 are identical (99.1%). With an oxfmt config, the post says bun fmt matches oxfmt 0.72’s output on 1,343 of oxfmt’s 1,498 fixtures (89.7%).
What We Don’t Know
The post lists cases where bun fmt intentionally differs from Prettier, for example keeping <!DOCTYPE html> in Handlebars, which it says Prettier 3.9.9 drops. Whether teams will accept those differences is not addressed by the source. The benchmarks are the vendor’s own, and no independent measurement is cited here.
Other Changes in the Release
The same post reports that bun check, the type checker covered in the Herald’s earlier report on Bun 1.4.3, is “1.4x to 7.8x faster on large projects,” with the MUI docs project dropping from 10.28 s to 1.31 s and peak memory there falling from 11.2 GB to 1.3 GB. It also says bun install now converts Yarn 2+ (Berry) lockfiles to bun.lock and retries failed requests up to five times with exponential backoff, starting at 50 ms, as described on the Bun blog.