🌊

Bunを使ってみる

に公開

以前より気になっていたBunをようやく使ってみることにした。

Bun とは

公式によると、

Bunは、バンドラー、テストランナー、Node.js 互換のパッケージマネージャーを備えた、高速化を重視したオールインワンの JavaScript ランタイムおよびツールキットです。

とのこと。

Zigで作られているため実行速度も優秀だとか。

とりあえず最初の印象としては、
「ランタイムはNode、パッケージマネージャーはnpm、テストはJest…」
みたいに、いろんなツールやらなんやらを使い分けるところ、全部 Bun でやっちゃおうみたいな感じです。
Bunのここが良いというのを熱く語ってくれる方がいらっしゃいましたらコメントいただけますと幸いです。

Bun の特徴

Bunの最大の特徴は、とにかく速いことです。公式のベンチマークを見ると、その差は歴然としています

  1. HTTPサーバーのリクエスト処理速度
    • Denoより約2.3倍速い
    • Node.jsより約3.1倍速い
  2. パッケージインストール速度
    • pnpmより約17倍高速
    • npmより約29倍高速
    • yarnより約33倍高速
  3. メモリ使用量
    速度だけでなく、メモリ使用量も抑えられています。
    同じ処理をする場合、Node.jsと比較して約40%程度のメモリ使用量で済むらしいです。(Claude君が教えてくれました。)
    もし本当にそうなのであればBunを使う大きなメリットになりますね。

インストールしてみる

インストール方法はシンプルです。

  1. インストール実行
curl -fsSL https://bun.sh/install | bash
  1. インストール確認
bun --version

プロジェクトを作ってみる

今回は Next.js のプロジェクトを作ってみます。

  1. プロジェクト作成
bun create next-app

一瞬で作成されました。(その間なんと4.55秒)

✔ What is your project named? … my-app
✔ Would you like to use TypeScript? … No / Yes
✔ Which linter would you like to use? › Biome
✔ Would you like to use Tailwind CSS? … No / Yes
✔ Would you like your code inside a `src/` directory? … No / Yes
✔ Would you like to use App Router? (recommended) … No / Yes
✔ Would you like to use Turbopack? (recommended) … No / Yes
✔ Would you like to customize the import alias (`@/*` by default)? … No / Yes
Creating a new Next.js app in /home/user/my-app.

Using bun.

Initializing project with template: app-tw


Installing dependencies:
- react
- react-dom
- next

Installing devDependencies:
- typescript
- @types/node
- @types/react
- @types/react-dom
- @tailwindcss/postcss
- tailwindcss
- @biomejs/biome

bun install v1.2.21 (7c45ed97)

+ @biomejs/biome@2.2.0 (v2.2.2 available)
+ @tailwindcss/postcss@4.1.12
+ @types/node@20.19.11 (v24.3.0 available)
+ @types/react@19.1.12
+ @types/react-dom@19.1.9
+ tailwindcss@4.1.12
+ typescript@5.9.2
+ next@15.5.2
+ react@19.1.0
+ react-dom@19.1.0

66 packages installed [4.55s]

Blocked 1 postinstall. Run `bun pm untrusted` for details.
Initialized a git repository.

Success! Created my-app at /home/user/my-app

ちなみに、yarnでインストールしてみた結果がこちら。

yarn create v1.22.22
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Installed "create-next-app@15.5.2" with binaries:
      - create-next-app
✔ What is your project named? … my-app
✔ Would you like to use TypeScript? … No / Yes
✔ Which linter would you like to use? › Biome
✔ Would you like to use Tailwind CSS? … No / Yes
✔ Would you like your code inside a `src/` directory? … No / Yes
✔ Would you like to use App Router? (recommended) … No / Yes
✔ Would you like to use Turbopack? (recommended) … No / Yes
✔ Would you like to customize the import alias (`@/*` by default)? … No / Yes
Creating a new Next.js app in /home/user/my-app.

Using yarn.

Initializing project with template: app-tw


Installing dependencies:
- react
- react-dom
- next

Installing devDependencies:
- typescript
- @types/node
- @types/react
- @types/react-dom
- @tailwindcss/postcss
- tailwindcss
- @biomejs/biome

yarn install v1.22.22
info No lockfile found.
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Saved lockfile.
Done in 32.26s.
Initialized a git repository.

Success! Created my-app at /home/user/my-app

Done in 43.78s.

43.78秒…
5秒かからなかったのを体験したあとだと死ぬほど遅く感じますね。

  1. アプリケーション起動
    作成したプロジェクトへ移動し
cd my-app

開発サーバを起動する

bun run dev

localhost:3000/にアクセスするとおなじみの画面が表示されます。

使ってみた感想

といった感じでちょっと触っただけですが Bun を触ってみて感じたことをまとめてみます。

良かった点

とにかく速い: パッケージインストール、スクリプト実行、どれも体感的に速い
設定が楽: TypeScript対応やテスト環境構築が最初からできている
全部入りの便利さ: ツールを使い分ける必要がない

気になった点

エコシステム: ライブラリの互換性等が少し心配
情報が少ない: まだ情報が少ない印象

まとめ

個人開発でyarnやnpmを使う理由やこだわりがなければ Bun で良くない?と思いました。
ただし、本格的なシステム開発で使う場合は、まだもう少し様子を見た方が良いかもしれません。とはいえ、個人プロジェクトやサイドプロジェクトなら、十分に実用的だと感じました。正直個人開発に技術選定要件なんてないと思っているので私は Bun 一択かなと感じています。

テストやバンドルについてはまだ触れていないのでこれからやっていきます。
あと、ネイティブサーバーもNodeと比べてどれくらい変わるのかも比較したいと思っています。

みなさんもぜひ試してみてください!

GitHubで編集を提案

Discussion