Bun 1.4.3, released on October 10, 2026, adds bun check, a TypeScript type checker built into the runtime. A port of the typescript-go compiler, it reports the same errors as tsc without emitting JavaScript, using every available CPU core. The release also fixes a regression that kept a timer running on idle servers, cutting CPU usage by 67 to 89 percent while a service sits idle.
A type checker with no dependency on TypeScript itself
bun check reads the project’s tsconfig.json directly and does not require the typescript package. It does not replace the editor’s language server, which still relies on TypeScript for live feedback, but runs from the command line or as part of other Bun commands.
bun check
bun check --no-pretty # plain output, useful for diffing
bun run --check dev # type check before running the script
bun test --check # type check test files and their imports
bun build --check ./src/index.ts --outdir outThe command leans on the editor for live feedback and on its own engine for command-line checking, so it can slot into a build script or a CI step without installing the official compiler.
Performance gaps measured on real projects
On a 16-core Apple Silicon Mac, the Bun team compared bun check against tsc 7.0.2 across several open-source codebases.
| Project | Files | bun check | tsc 7.0.2 | Speedup |
|---|---|---|---|---|
| VS Code (src) | 9,795 | 1.24s | 5.98s | 4.8x |
| mikro-orm | 2,883 | 1.20s | 5.97s | 5.0x |
| Next.js (packages/next) | 2,881 | 0.28s | 1.82s | 6.4x |
| Playwright | 706 | 0.15s | 0.64s | 4.2x |
On the VS Code project, memory use drops to 2.14 GB versus 7.97 GB for tsc, a 3.7x reduction. A second benchmark on Linux x64, using 64 threads and averaged over 20 runs, confirms the gap on VS Code’s 10,947 files: 1.75s for bun check against 5.88s for tsc 7 running with 16 checker processes.
The correctness question
A faster checker only matters if it reaches the same verdict as the original. The Bun team says it passes 100 percent of the TypeScript 7.0.2 conformance suite, 51,210 tests, and compared its output against tsc on 72 deliberately misconfigured open-source projects.
Bun says it compared its output against tsc on 286,267 reported errors across 72 projects, with a single mismatch found.
These figures come from the Bun team itself, not an independent audit. The team published a protocol to reproduce the comparison on any project: run tsc and bun check side by side, diff the outputs, and file an issue if they disagree.
bunx -p [email protected] tsc --noEmit --pretty false > tsc.txt
bun check --no-pretty > bun.txt
diff tsc.txt bun.txtA server that actually sleeps when idle
The second notable fix affects long-running HTTP applications. Since version 1.4.2, an occasional request kept a garbage-collection timer firing every second, even with no traffic. Version 1.4.3 only wakes the process for real work, such as a health check every ten seconds.
| Framework | v1.4.0 | v1.4.2 | v1.4.3 |
|---|---|---|---|
| Express | 308ms | 282ms | 57ms |
| Elysia | 280ms | 197ms | 21ms |
| Hono | 263ms | 195ms | 21ms |
| Next.js SSR | 628ms | 815ms | 268ms |
These cumulative CPU figures, measured over two idle minutes with a health check every ten seconds, matter most for usage-billed deployments, where a process running for no reason has a direct cost. Idle memory is also 6 to 11 percent lower than the previous release.
The rest of the release
The version also adds Bun.FetchSession, which isolates TLS, proxy, and keep-alive settings per group of requests, and an experimental Bun.ModuleGraph class that runs several instances of one app inside a single process. Several security fixes round out the release, including TLS hardening tracked as CVE-2026-48618.
For a broader look at JavaScript package managers and runtimes, see the comparison of npm, pnpm, Bun, and Deno. On the TypeScript compiler side specifically, the move to a Go-based compiler was already covered in the piece on TypeScript 7 and its Go compiler, whose tsc 7.0.2 serves as the benchmark reference here.
What to remember
Bun 1.4.3 turns type checking into a speed argument rather than a service left entirely to the TypeScript ecosystem. The claimed gains, 3x to 6.4x depending on the project, apply to command-line and CI checking, not the in-editor experience, which still runs on the regular TypeScript language server. For teams running Bun services in usage-billed production, the idle-timer fix may matter at least as much as the new checker.
The number worth dwelling on is not the 6.4x on Next.js, it is the 89 percent drop in idle CPU on Elysia. More than one hosting bill has been inflated by a Node process spinning for nothing between requests than by a build slowed down by a sluggish type checker. Whether bun check holds up on messier codebases than the ones picked for the demo, with legacy tsconfig setups and recursive generic types that trip up more than one third-party tool, remains to be seen. Until then, the diff script the team shipped is the right way to verify on your own project before pulling tsc out of a CI pipeline. — Simon Janvier
Further reading: the official Bun team post on version 1.4.3.
