On Oct 12 Bun merged PR #44805, adding native bun lint (1,021 built-in rules, reads ESLint and oxlint configs, type-aware rules included) and bun format/bun fmt (matches Prettier/oxfmt output across JS/TS/CSS/HTML/Vue/YAML/Markdown and more). On vscode's source, Bun reports a format check taking 2.9s of CPU time versus 295s for Prettier 3.9.9. It is in main and the docs, but not yet in the v1.4.3 stable release.
Key Takeaways
- ✓
bun lintships 1,021 rules: 69,640 ESLint rule-test cases with 0 failures and 27,702 oxlint cases with 0 failures (PR #44805, vendor-reported) - ✓
bun formaton Prettier 3.9.9's tests/format: 9,728 pass, 5 fail; across 330 real repos it matches oxfmt 0.72 byte-for-byte in 95% of runs (227/240) and Prettier in 77% (57/74) - ✓vscode
src/(10,149 files, 8 cores): format check CPU time 2.9s for bun vs 5.5s oxfmt, 20s Biome 2.5, 295s Prettier 3.9.9; lint recommended 0.25s vs oxlint 0.51s wall - ✓With vscode's own ESLint config (8 plugins, 13,069 files): 15.8s vs ESLint 10's 404s, about 26x (earlier build, being re-measured); with heavy JS plugins the median gain is only 1.7x
- ✓Cost: the linux-x64 binary grows from 85.18MB to 100.09MB (+14.91MB); the latest stable v1.4.3 (Oct 10) does not include it yet
Key Decision Metrics at a Glance
Turn your technical choice into a development budget
Compare 40 dev plans & simulate token costs vs $20/mo subscriptions
Project Links & Resources
Direct AccessIn-Depth Technical Analysis
Bun merged PR #44805 on Oct 12, adding two native commands. bun lint implements 1,021 rules from ESLint, typescript-eslint, React, import, unicorn, jsx-a11y and more, reads existing ESLint or oxlint configs, runs type-aware rules without the typescript package, and supports --fix. bun format (alias bun fmt) reads Prettier or oxfmt configs and aims for byte-identical output across JS/TS/JSX, CSS/SCSS/Less, HTML, Vue, Angular, JSON, YAML, TOML, Markdown, MDX and GraphQL, and sorts imports, Tailwind classes and package.json. Both use every core, need no packages, and are configured in bunfig.toml; an existing lint or format script keeps its old meaning.
Vendor-reported results: 69,640 ESLint rule-test cases and 27,702 oxlint cases with zero failures; 9,728 of Prettier's format tests pass with 5 failures; across 330 real repositories, output matches oxfmt in 95% of runs and Prettier in 77%. On vscode's src (10,149 files), a format check takes 2.9s of CPU time versus 5.5s for oxfmt, 20s for Biome and 295s for Prettier 3.9.9; linting with vscode's own ESLint config took 15.8s versus 404s (measured on an earlier build). With heavy third-party JS plugins the median gain over ESLint drops to 1.7x, and the binary grows by about 15MB.
The commands are in main and documented at bun.com/docs/format and bun.com/docs/lint, but the latest stable release, v1.4.3, does not include them yet. Use bun fmt --check in CI (exit codes 0/1/2), bun fmt --init to create config, and diff against your current Prettier/ESLint output before switching.
Benchmark side-by-side against alternatives, or calculate monthly token cost vs subscription break-even.
Discussion & Comments
0Sign in to join the discussion
Connect with AI developers to exchange benchmark insights.