Skip to content

Bun 1.4.3 adds bun check, a faster TypeScript type checker

Bun 1.4.3 adds bun check, a built-in TypeScript type checker that Bun says runs 3x to 6.4x faster than tsc 7.0.2 and passes all 51,210 conformance tests.

By Tech AI Wire Team

5 min read

XLinkedIn
Screenshot of the Bun blog post Bun v1.4.3 by Jarred Sumner, dated October 10, 2026, with install commands and a table of contents listing bun check.

By the numbers

of 51,210 TypeScript 7.0.2 conformance tests passed
51,210
less memory than tsc 7.0.2, per Bun
2.2x-4.9x
less CPU use while a server sits idle
67-89%
bun check speedup over tsc 7.0.2, by project (Bun's figures)
Next.js packages/next
6.4x
mikro-orm
5x
VS Code src
4.8x
Playwright
4.2x
Storybook scripts
3.5x
Next.js root
3.1x
Nuxt
3x

Bun 1.4.3 was released on October 10, 2026, and it adds bun check, a TypeScript type checker built into the runtime. Bun says it runs 3x to 6.4x faster than tsc 7.0.2, Microsoft's own checker, while using 2.2x to 4.9x less memory. A type checker reads your code and reports type errors without running it. For large projects, that check is often one of the slowest steps in a CI pipeline, the automated build that runs on every pull request.

Bun is a JavaScript runtime that also bundles a package manager, a bundler and a test runner. The 1.4 line is the version that moved Bun's code from Zig to Rust in August.

What bun check does

According to the Bun 1.4.3 release post, bun check is a port of typescript-go. That is the Go-based TypeScript 7 compiler, which ships as tsc 7. Bun's documentation says the command reads tsconfig.json, reports the same errors as tsc from TypeScript 7 and uses every CPU core.

It only checks. It never writes JavaScript, .d.ts type files, source maps or .tsbuildinfo files. It also has no language server, so your editor keeps running its own copy of TypeScript. The command exits with code 1 when it finds an error and 0 when it finds none.

Bun reports two accuracy tests:

  • It passes 51,210 of 51,210 tests in TypeScript 7.0.2's conformance suite.
  • Across 72 open-source projects, 1,102 of 1,103 configurations gave identical results. Bun compared 286,267 errors and found one mismatch, in vuejs/core.

The same check also runs inside other commands. bun --check, bun test --check, bun build --check and bun run --check type-check first and then do their normal job.

Bun's benchmark numbers

Bun ran its comparison on a 16-core Apple silicon Mac against tsc 7.0.2:

ProjectFilesbun checktsc 7.0.2Speedup
VS Code src9,7951.24 s5.98 s4.8x
mikro-orm2,8831.20 s5.97 s5.0x
Next.js packages/next2,8810.28 s1.82 s6.4x
Next.js root3,5470.42 s1.28 s3.1x
Storybook scripts1,0390.27 s0.96 s3.5x
Nuxt8390.27 s0.80 s3.0x
Playwright7060.15 s0.64 s4.2x

Memory use fell too. On the VS Code source, Bun measured 2.14 GB for bun check against 7.97 GB for tsc 7.0.2. The post is not fully consistent about the top of the range. Its text says "3x to 6.4x faster," while the alt text on its chart says 3x to 7x.

An outside benchmark

An independent project offers a second set of numbers. tsrs is a Rust port of the TypeScript 7 checker by developer Max Schwenk. Its README says it was "written largely by AI coding agents, directed and reviewed by Max Schwenk." It competes with bun check, so its claims deserve the same caution as Bun's.

On the VS Code codebase, run on a 64-core Linux machine, tsrs reports these times:

CheckerTimePeak memory
tsc 7 (tsgo 7.0.2)9.79 s7.52 GiB
bun check (Bun 1.4.3 canary)0.87 s2.86 GiB
tsrs0.53 s2.64 GiB

The tsrs README adds an important caveat. By default, tsgo uses 4 checker threads, while bun check uses every core. When tsrs gave all three tools 16 threads on VS Code, tsgo took 4.54 s and bun check took 1.49 s. The gap is real, but it is smaller than default settings suggest.

The rest of the release

Bun 1.4.3 also changes the runtime itself:

  • Idle CPU. Servers use 67% to 89% less CPU while they sit idle. Bun traced the waste to a one-second garbage-collection timer that stayed on. Over two idle minutes, an Express server dropped from 282 to 57 CPU milliseconds.
  • Bun.FetchSession. A new API gives a group of requests its own TLS, proxy and keep-alive settings and its own connection pool.
  • Bun.ModuleGraph. An experimental API runs many copies of one app in one process. The post warns that graph.dispose() "is not a security sandbox."
  • node:http. Large responses are up to 2.7x faster.
  • bun install. It now skips tarballs it will not install. Installing npm@10.9.2 went from 196 tarballs to 1.
  • Security. The release fixes CVE-2026-48618 in TLS host name matching. It also rate-limits HTTP/2 stream resets for CVE-2023-44487 and CVE-2025-8671.

What this means for developers

For most projects, the swap is one line. Bun's docs map tsc --noEmit to bun check and tsc -b to bun check -b. Run bun upgrade first, then time both commands on your own repository. Hardware, thread count and project shape all move the result.

Check five things before you change CI:

  • Keep tsc if you publish types. bun check never writes .d.ts files, so library authors still need tsc for that step.
  • Look for blocked options. The check stops on older settings, including moduleResolution: node10, baseUrl, target: es5 and outFile.
  • Yarn PnP is not supported. Set nodeLinker: node-modules if you use Yarn.
  • Watch for a script named check. If package.json defines a check script, bun check runs that script instead. Use bun --check in that case.
  • Pin threads on shared runners. The docs suggest --threads 4 on shared CI machines.

Your editor may still disagree with bun check, because it runs its own TypeScript. The docs suggest installing the matching version with bun add -d typescript@$(bun -p process.versions.typescript).

TypeScript tooling keeps moving to native code. Microsoft ported the checker to Go, Bun ported that port, and tsrs ports it again to Rust. Last month, tsgolint brought type-aware lint rules to Go as well. Teams that type-check on every commit now have several fast checkers to measure against each other on their own code.

Sources

  1. Bun v1.4.3 - Bun Blog
  2. tsrs: Rust port of the TypeScript 7 type checker - GitHub
  3. Type checking - Bun Docs

Related articles

The weekly digest

One email every Friday with the week's top stories from all six desks: AI, dev tools, coding, the tech industry, startups and what's next. Free, no spam.

Unsubscribe anytime with one click.