本文へスキップ

Bun 1.4.3がbun checkを追加、より高速なTypeScriptの型チェッカー

Bun 1.4.3は、TypeScript(タイプスクリプト)の型チェッカーbun checkを内蔵しました。Bunによると、tsc 7.0.2より3倍から6.4倍速く動作し、51,210件の適合性テストすべてに合格します。

著者 Tech AI Wire Team

5 分で読めます

Bunのブログ記事「Bun v1.4.3」のスクリーンショット。Jarred Sumnerによる2026年10月10日付の投稿で、インストールコマンドとbun checkを含む目次が表示されている。

数字で見る

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は2026年10月10日にリリースされ、ランタイムに組み込まれたTypeScriptの型チェッカーbun checkを追加しました。Bunによると、Microsoft自身のチェッカーであるtsc 7.0.2より3倍から6.4倍速く動作し、メモリ使用量は2.2分の1から4.9分の1に抑えられます。型チェッカーは、コードを実行せずに読み取り、型エラーを報告します。大規模なプロジェクトでは、このチェックがCIパイプラインで最も遅いステップの1つになることがよくあります。CIパイプラインとは、プルリクエストのたびに実行される自動ビルドのことです。

Bunは、パッケージマネージャー、バンドラー、テストランナーも同梱したJavaScriptランタイムです。1.4系は、8月にBunのコードをZigからRustに移行したバージョンです。

bun checkの機能

Bun 1.4.3のリリース記事によると、bun checkはtypescript-goの移植版です。typescript-goは、Goで書かれたTypeScript 7のコンパイラーで、tsc 7として提供されています。Bunのドキュメントによると、このコマンドはtsconfig.jsonを読み込み、TypeScript 7のtscと同じエラーを報告し、すべてのCPUコアを使います。

このコマンドはチェックだけを行います。JavaScript、.d.ts型ファイル、ソースマップ、.tsbuildinfoファイルは一切書き出しません。また、言語サーバーもないため、エディターは引き続き独自のTypeScriptのコピーを実行します。このコマンドは、エラーを見つけると終了コード1を、見つけなければ0を返します。

Bunは、正確さに関する2つのテスト結果を報告しています。

  • TypeScript 7.0.2の適合性テストスイートで、51,210件中51,210件に合格しています。
  • 72のオープンソースプロジェクトで、1,103の構成のうち1,102が同一の結果になりました。Bunは286,267件のエラーを比較し、vuejs/coreで1件の不一致を見つけました。

同じチェックは、ほかのコマンドの中でも動きます。bun --check、bun test --check、bun build --check、bun run --checkは、まず型チェックを行い、そのあと通常の処理をします。

Bunのベンチマーク結果

Bunは、16コアのApple silicon搭載Macで、tsc 7.0.2と比較しました。

プロジェクトファイル数bun checktsc 7.0.2高速化
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

メモリ使用量も減りました。VS Codeのソースでは、Bunの計測でbun checkが2.14 GB、tsc 7.0.2が7.97 GBでした。リリース記事は、範囲の上限について完全には一貫していません。本文では「3倍から6.4倍速い」としていますが、グラフの代替テキストでは3倍から7倍となっています。

外部のベンチマーク

独立したプロジェクトが、2つ目の数字を示しています。tsrsは、開発者のMax Schwenk氏によるTypeScript 7チェッカーのRust移植版です。そのREADMEには、「大部分はAIコーディングエージェントによって書かれ、Max Schwenkが指示とレビューを行った」とあります。tsrsはbun checkと競合するため、その主張にもBunの主張と同じ慎重さが必要です。

64コアのLinuxマシンで実行したVS Codeのコードベースについて、tsrsは次の時間を報告しています。

チェッカー時間ピークメモリ
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

tsrsのREADMEは、重要な注意点を加えています。デフォルトでは、tsgoは4つのチェッカースレッドを使いますが、bun checkはすべてのコアを使います。tsrsがVS Codeで3つのツールすべてに16スレッドを割り当てたところ、tsgoは4.54秒、bun checkは1.49秒かかりました。差は本物ですが、デフォルト設定から受ける印象よりは小さくなります。

リリースのその他の内容

Bun 1.4.3は、ランタイム自体にも変更を加えています。

  • アイドル時のCPU。 サーバーがアイドル状態のときのCPU使用量が67%から89%減りました。Bunは、この無駄の原因が、オンのままになっていた1秒間隔のガベージコレクションタイマーにあることを突き止めました。アイドル状態の2分間で、Expressサーバーは282 CPUミリ秒から57 CPUミリ秒に減りました。
  • Bun.FetchSession。 新しいAPIで、リクエストのグループに独自のTLS、プロキシ、キープアライブの設定と、独自の接続プールを持たせられます。
  • Bun.ModuleGraph。 実験的なAPIで、1つのアプリのコピーを1つのプロセスの中で多数実行します。リリース記事は、graph.dispose()は「セキュリティサンドボックスではない」と警告しています。
  • node:http。 大きなレスポンスが最大2.7倍速くなりました。
  • bun install。 インストールしないtarballをスキップするようになりました。npm@10.9.2のインストールでは、tarballが196個から1個に減りました。
  • セキュリティ。 このリリースは、TLSのホスト名照合にあるCVE-2026-48618を修正します。また、CVE-2023-44487とCVE-2025-8671に対応して、HTTP/2のストリームリセットにレート制限をかけます。

開発者にとっての意味

ほとんどのプロジェクトでは、切り替えは1行で済みます。Bunのドキュメントは、tsc --noEmitをbun checkに、tsc -bをbun check -bに対応させています。まずbun upgradeを実行し、次に自分のリポジトリで両方のコマンドの時間を計ってください。ハードウェア、スレッド数、プロジェクトの構成のすべてが結果を左右します。

CIを変更する前に、5つの点を確認してください。

  • 型を公開するならtscを残すこと。 bun checkは.d.tsファイルを書き出さないため、ライブラリの作者はその手順にまだtscが必要です。
  • ブロックされるオプションを探すこと。 チェックは古い設定で止まります。moduleResolution: node10、baseUrl、target: es5、outFileなどです。
  • Yarn PnPは非対応。 Yarnを使っている場合は、nodeLinker: node-modulesを設定してください。
  • checkという名前のスクリプトに注意すること。 package.jsonにcheckスクリプトが定義されていると、bun checkは代わりにそのスクリプトを実行します。その場合はbun --checkを使ってください。
  • 共有ランナーではスレッド数を固定すること。 ドキュメントは、共有のCIマシンでは--threads 4を勧めています。

エディターは独自のTypeScriptを実行するため、bun checkと結果が食い違うことがあります。ドキュメントは、bun add -d typescript@$(bun -p process.versions.typescript)で対応するバージョンをインストールするよう勧めています。

TypeScriptのツールは、ネイティブコードへの移行を続けています。MicrosoftはチェッカーをGoに移植し、Bunはその移植版をさらに移植し、tsrsはそれをもう一度Rustに移植しています。先月には、tsgolintも型を考慮したlintルールをGoにもたらしました。コミットのたびに型チェックを行うチームは、今では複数の高速なチェッカーを自分たちのコードで比較できます。

出典

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

関連記事

Ryan Dahlによる、2026年10月9日付のDenoのブログ記事「Deno is joining Cloudflare」のスクリーンショット。
開発ツール

DenoがCloudflareに合流、Deno Deployは6か月後に終了

Deno(ディーノ)のチームがCloudflareに合流します。Deno Deployは6か月後に終了し、ランタイムには最後の1年間、毎月の修正が提供されます。JSRはCloudflareに移ります。

CloudSEKのブログ記事「MALFEX - A malicious npm postinstall no advisory has caught for fourteen months」のスクリーンショット。レポートのヘッダー画像の上に表示されている。
開発ツール

npmマルウェア「MALFEX」、14か月間検知されず稼働

1人の攻撃者によるnpmのサプライチェーン攻撃「MALFEX」は、2023年以降に12個のパッケージを公開し、ダウンロード数は40,767回に達した。一部は今もアドバイザリーなしで公開されている。