初めに #
近年、JavaScript はフロントエンドにとどまらず、バックエンドや運用系スクリプトなど、さまざまな分野で幅広く利用されるようになってきました。
Web アプリケーション開発においても、サーバーサイドの実装を PHP や Ruby から JavaScript へ移行するケースが増えており、実運用での採用が着実に進んでいます。
バックエンド向けの JavaScript ランタイムとしては、Node.js や Deno が代表的な存在として広く利用されています。
一方で、サーバーエンジニアにとって、これらのランタイムは機能が豊富な分、ややオーバースペックに感じられる場面もあります。
そこで注目されているのが、次世代の JavaScript ランタイムとして登場した Bun です。
Bun は、シンプルな構成で高速に実行できることを特徴としており、サーバーエンジニアが日常的に利用するツール用途とも高い親和性を持っています。
本記事では、AlmaLinux 10 環境において Bun を導入する手順を初心者向けに解説いたします。
Bunとは #
Bun は、JavaScript および TypeScript を高速に実行することを目的として開発された、次世代の JavaScript ランタイムです。
オープンソースとして開発が行われており、既存の Node.js や Deno と同様にサーバーサイドでの JavaScript 実行を行う事ができます。
また、Bun は Zig 言語で実装されており、シンプルな構成と高速な実行性能を両立している点が特徴となります。
さらに、パッケージマネージャやトランスパイラ、テストランナーなど、開発に必要な機能を標準で内包しており、追加のツールを導入することなく開発を始める事ができます。
以下は Bun の公式リポジトリとなっております。
Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one
Bunのインストール #
前提条件 #
Bun は、dnf などのパッケージ管理システムを利用して導入するのではなく、公式が提供しているインストールスクリプトを使用する仕組みとなっています。
このインストールスクリプトでは、いくつかのコマンドを内部で使用するため、事前に必要なパッケージを導入しておく必要があります。
また、Bun は基本的にシステム全体ではなくユーザー単位でインストールされます。
本記事では、システム単位ではなくユーザー環境に Bun を導入する手順をご紹介します。
なお、ダウンロードしたバイナリを共有ディレクトリに配置することで、複数ユーザーから利用する構成も可能ですが、今回は扱いません。
事前準備 #
インストールスクリプトでは curl や unzip を使用するため、以下のコマンドを実行し事前に必要な依存パッケージを導入してください。
dnf install -y curl unzip
これらの導入が完了すると以下のようにメッセージが表示されます。
Complete!
以上で事前準備は完了となります。
インストールの実行 #
それではインストールの実行を行なっています。
以下のコマンドを、Bun を導入したいユーザーで実行してください。
curl -fsSL https://bun.sh/install | bash
コマンドを実行すると、ダウンロードの進行状況が表示されます。
################################ 50.0%
処理が完了すると、以下のようなメッセージが表示されます。
######################################################################## 100.0%
bun was installed successfully to ~/.bun/bin/bun
Added "~/.bun/bin" to $PATH in "~/.bash_profile"
To get started, run:
source /home/ユーザー名/.bash_profile
bun --help
ダウンロードされた Bun のバイナリは、ユーザーのホームディレクトリ配下にある ~/.bun/bin に配置されます。
PATH の設定についても、インストールスクリプトによって自動的に追記されます。
設定を反映させるため、以下のコマンドを実行してください。
source ~/.bash_profile
続いて、Bun が正しくインストールされているかを確認を行います。
以下のコマンドを実行し、バージョン情報が表示されるかを確認してください。
bun -v
正常にインストールされている場合は、次のようにバージョン番号が表示されます。
$ bun -v
1.3.6
一方、以下のようなエラーメッセージが表示される場合は、PATH の設定が反映されていません。
-bash: bun: command not found
この場合は、source ~/.bash_profile を実行して設定を反映するか、再ログインしたうえで再度コマンドを実行してください。
以上で Bun の導入は完了となります。
Bunの基本的な使い方 #
それでは、Bun を使った基本的な操作について紹介します。
単一の JavaScript / TypeScript ファイルを実行 #
Bun では、JavaScript や TypeScript ファイルをそのまま実行する事ができます。
今回は例として、ウェルカムメッセージを出力するプログラム hello.ts を作成し、実行してみます。
echo 'console.log("Hello Bun");' > hello.ts
作成したファイルは、bun コマンドで実行できます。
bun hello.ts
正常に実行されると、ターミナルにプログラムで指定したメッセージが表示されます。
$ bun hello.ts
Hello Bun
プロジェクトを作成して実行 #
Bun では、init オプションを指定する事でプロジェクトのひな形を作成する事ができます。
基本的な実行方法は以下の通りとなります。
bun init <プロジェクト名>
これは Node.js の npm init に近い操作となっています。
それでは、実際に test-app プロジェクトを作成してみます。
bun init test-app
コマンドを実行すると、対話形式でプロジェクトのテンプレートを選択する画面が表示されます。
? Select a project template - Press return to submit.
❯ Blank
React
Library
選択できるテンプレートは以下の通りとなっております。
| テンプレート | 説明 |
|---|---|
| Blank | 最小構成のテンプレート。 |
| React | React を使用したフロントエンド向けの構成が含まれたテンプレート。 |
| Library | ライブラリ開発向けのテンプレート。 |
今回は、最小構成で扱いやすい Blank テンプレートを選択します。
選択が完了すると、以下のようなメッセージが表示され、プロジェクトの初期化と依存関係のインストールが自動的に行われます。
✓ Select a project template: Blank
+ .gitignore
+ index.ts
+ tsconfig.json (for editor autocomplete)
+ README.md
To get started, run:
bun run index.ts
bun install v1.3.6 (d530ed99)
+ @types/bun@1.3.6
+ typescript@5.9.3
5 packages installed [30.00ms]
指定した名前にてプロジェクトディレクトリが作成されます。
$ ls
test-app
作成したプロジェクトは、以下のようなファイル構成となっています。
test-app
├─ index.ts # アプリケーションのエントリーポイント
├─ package.json # プロジェクト設定・依存関係の定義
├─ bun.lock # 依存関係のロックファイル
├─ node_modules/ # インストールされた依存パッケージ
├─ tsconfig.json # TypeScript の設定ファイル
└─ README.md # プロジェクトの概要・説明
続いて、作成したプロジェクトディレクトリへ移動し、index.ts を実行してみます。
cd test-app
bun run index.ts
コマンドを実行すると、index.ts に記述された処理が実行され、結果がターミナルに表示されます。
$ bun run index.ts
Hello via Bun!
プロジェクトの基本的な作成方法は以上となります。
まとめ #
本記事では、AlmaLinux 10 環境において Bun を導入し、基本的な使い方からプロジェクト作成までの流れを紹介しました。
Bun は高速かつシンプルに扱える JavaScript ランタイムであり、ツール用途や小規模なサーバーサイド処理にも非常に適しています。
是非とも活用して見てください。