
ALT Benchmark chart for bun check, Bun's built-in TypeScript type checker. It compares Bun canary, Bun 1.4.3 and tsc 7.0.2 on four projects, showing time and peak memory for a full type check. mui docs: canary 1.31s, 1.5 GiB. Bun 1.4.3 9.31s, 9.6 GiB, 7.1x slower. tsc 18.04s, 8.3 GiB, 13.8x slower. t3code server: canary 1.47s, 1.5 GiB. Bun 1.4.3 4.53s, 1.6 GiB, 3.1x slower. tsc 22.02s, 7.1 GiB, 15.0x slower. supabase studio: canary 0.63s, 1.6 GiB. Bun 1.4.3 1.67s, 1.9 GiB, 2.7x slower. tsc 8.98s, 4.5 GiB, 14.3x slower. mikro-orm: canary 1.24s, 1.6 GiB. Bun 1.4.3 2.15s, 2.0 GiB, 1.7x slower. tsc 13.41s, 6.8 GiB, 10.8x slower. Benchmarked on a 64-core machine (EPYC 9R14, Linux x64). No cache, default settings.
![Graphic for bun fmt and bun lint --staged. Format and lint only what you're committing. One line in a git hook, nothing to install. Step 1, create this file: .git/hooks/pre-commit, a plain text file made executable with chmod +x, containing "#!/bin/sh" and "bun fmt --staged && bun lint --staged". Step 2, commit: a terminal runs git commit -m "add cart". bun fmt prints "src/cart.ts" and "Formatted 1 file, 0 unchanged [8.10ms]", with a sticker reading "re-staged". bun lint then prints a code frame pointing at a debugger statement in src/cart.ts line 2, "error: Unexpected 'debugger' statement. no-debugger", "1 problem (1 error, 0 warnings)" and "Linted 1 file [7.94ms]". A stamp reads "commit blocked".](https://pbs.twimg.com/media/HUrPzjragAAAruk.jpg?name=small&format=webp)
ALT Graphic for bun fmt and bun lint --staged. Format and lint only what you're committing. One line in a git hook, nothing to install. Step 1, create this file: .git/hooks/pre-commit, a plain text file made executable with chmod +x, containing "#!/bin/sh" and "bun fmt --staged && bun lint --staged". Step 2, commit: a terminal runs git commit -m "add cart". bun fmt prints "src/cart.ts" and "Formatted 1 file, 0 unchanged [8.10ms]", with a sticker reading "re-staged". bun lint then prints a code frame pointing at a debugger statement in src/cart.ts line 2, "error: Unexpected 'debugger' statement. no-debugger", "1 problem (1 error, 0 warnings)" and "Linted 1 file [7.94ms]". A stamp reads "commit blocked".

ALT Poster for bun lint, an ESLint-compatible linter built into Bun. Headline: 26x faster than ESLint. Table of lint times on real projects, each with its own config and plugins, bun lint vs ESLint: shadcn/ui 2.1 s vs 90.4 s (43x), chakra-ui 0.59 s vs 22.6 s (38x), vscode 15.8 s vs 404 s (26x), mastodon 6.6 s vs 100 s (15x), playwright 4.9 s vs 53.4 s (11x). On vscode, 9,823 of 9,826 messages are identical. 99.6% of ESLint's tests pass. 99.8% of oxlint's tests pass. 2x faster than oxlint with 3x less memory. 1,021 rules built in, including type-aware rules.

ALT Poster for bun fmt, a Prettier-compatible formatter built into Bun. Headline: 320x faster than Prettier. Bar chart of wall-clock time to run --check on microsoft/vscode (10,148 files, 8 cores): bun fmt 0.43 s, oxfmt 0.72 0.85 s (2x slower), Biome 2.5 3.6 s (8.3x slower), Prettier 3.9.9 139 s (320x slower). Formats 20 languages: JavaScript, TypeScript, JSX, Flow, HTML, Vue, Angular, Handlebars, MJML, CSS, SCSS, Less, JSON, JSONC, JSON5, YAML, TOML, GraphQL, Markdown and MDX. 99% of Prettier's tests pass (9,728 of 9,821). 5x less memory than Prettier (183 MB vs 972 MB).





